Copiar campos BLOB entre tablas SQL y TPS

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Responder
duenda
Al nivel de RZ
Mensajes: 131
Registrado: Mar Mar 01, 2011 8:36 pm
Contactar:

Copiar campos BLOB entre tablas SQL y TPS

Mensaje por duenda » Vie Jun 07, 2019 12:54 pm

Hola foreros!

Tengo una tabla en una DB Firebird que contiene imágenes guardadas en formato BLOB.
Necesito exportar un bloque de registros de dicha tabla a TPS para luego importarlos desde otra DB Firebird.

Me anda todo ok, pero no me exporta los BLOB, algo a tener en cuenta para este tipo de campos???

Gracias! Ile


HDMadeira
Al nivel de RZ
Mensajes: 295
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: Copiar campos BLOB entre tablas SQL y TPS

Mensaje por HDMadeira » Dom Jun 09, 2019 5:17 pm

Hola, probaste primero hacer un blobtofile() para crear un archivo físico y luego hacer un filetoblob() para meterlo el tps ?

Saludos

Daniel

duenda
Al nivel de RZ
Mensajes: 131
Registrado: Mar Mar 01, 2011 8:36 pm
Contactar:

Re: Copiar campos BLOB entre tablas SQL y TPS

Mensaje por duenda » Dom Jun 09, 2019 5:39 pm

Hola Daniel:

Como último recurso pensaba usar esa opción, pero quería saber si es posible copiar directamente la información de campo a campo sin tener que crear el archivo de imagen, ya que es un proceso que se hará regularmente, y esto implicaría que, además de enviar el archivo de actualización vía mail, les envíen toda la carpeta de las imágenes.

Gracias! Ileana

duenda
Al nivel de RZ
Mensajes: 131
Registrado: Mar Mar 01, 2011 8:36 pm
Contactar:

Re: Copiar campos BLOB entre tablas SQL y TPS

Mensaje por duenda » Dom Jun 09, 2019 6:39 pm

Ya lo solucioné!!!!

Dejo la solución por si alguien más le sirve... en principio, los campos tipo BLOB no pueden copiarse así nomás como el resto de los campos donde:

TABLA1:Foto = TABLA2:Foto

Se debe agregar la Propiedad HANDLE en ambos casos, sino da error de compilación:

TABLA1:Foto{PROP:HANDLE} = TABLA2:Foto{PROP:HANDLE}

Esto ya lo había hecho pero igualmente no me exportaba nada... y probando encontré que, como la copia la hacía desde un PROCESS y no se permiten BINDEAR los campos de tipo BLOB, si le pongo un FETCH en el recorrido de cada registro lo toma, es algo que parece redundante, pero bue... anda:

TABLA2:id = TABLA2:id
Access:NombreTabla2.Fetch(TABLA2:IdKey)

y acá hago la copia de los campos que necesito...


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados