Como exportar la imagen de un campo blob a una imagen jpg desde powerbuilder?

Si alguien sabe como exportar a una ruta como tipo jpg una imagen que se muestra en una campo tipo BLOB.

1 Respuesta

Respuesta

Lo primero que tendrías que hacer es coger el blob de tu tabla con una SELECT a una variable tipo Blob. Por ejemplo:

SELECT IMAGEN 
INTO :bBlob
FROM MI_TABLA
WHERE ID = 1;

Ahora, ese blob se lo puedes mandar a la siguiente función:

//--------------------------------------------------------------
// Función : gf_BlobToFile(blob bpArchivo, string srRuta)
// Descripción: Coge un blob y lo guarda en la ruta indicada.
// Parámetros : bpArchivo.- Blob con el fichero.
//              srRuta   .- Ruta destino del fichero. (C:\Temp\Imagen1.jpeg)
// Devuelve : nada
//--------------------------------------------------------------
Blob bTrozo
long lFichero, lLong = 0, lSize, lPos = 1, lLoops, i
lFichero = FileOpen(srRuta,StreamMode!,Write!,LockReadWrite!,Replace!) 
IF lFichero <= 0 THEN Return -1
// Se averigua el número de trozos en que ha de partirse el blob.
lSize = len(bpArchivo) 
IF lSize > 32765 THEN
  IF Mod(lSize, 32765) = 0 THEN
    lLoops = lSize/32765
  ELSE
    lLoops = (lSize/32765) + 1
  END IF
ELSE
  lLoops = 1
END IF
// Se guardan los trozos del blob en el fichero.
FOR i = 1 to lLoops 
  bTrozo = BlobMid(bpArchivo, (((32765 * i) - 32765) + 1), 32765)
  FileWrite(lFichero, bTrozo)
NEXT
FileClose(lFichero)
Return 1

NOTA: El fichero debe guardarse con la misma extensión que se guardó el blob. Es decir, si era un .gif, deberías guardarlo .gif. Si era .jpg o .png deberías guardarlo como .jpg o .png. Como fuese en un inicio. Yo siempre que uso blobs tengo otra columna en la tabla donde guardo el nombre de fichero y su extensión, por ejemplo Mi_Imagen.jpeg. Luego recupero ese nombre en un string y es el que uso para guardar el fichero ;) .

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas