La Web del Programador: Comunidad de Programadores
 
    Pregunta:  51350 - SELECTBLOB
Autor:  Adrian Alvarez
tengo una aplicacion pero al presentar las fotografias guardadas en la bd con updateblod en un campo en la table como long binary, pero al hacer el selectblob y presentarlo en el control picture control no me presenta la fotografia completa, aqui esta el ejemplo:

Asi guardo la referencia en la base de datos:

//actualizamos el registro
UpdateBlob inventario
Set foto1 = :lb_foto
Where idr_inv = :gl_idr
Using sqlca ;

Mando llamar la fotografia de la base de datos:

SelectBlob foto1
Into :lb_foto1
From inventario
Where idr_inv = :gl_idr
Using sqlca ;

Muevo la fotografia al control:

p_1.SetPicture(lb_foto1)

Espero su pronta respuesta ya que me urge que funcione la presentacion de fotos para el inventario

  Respuesta:  elgatomauro elgatomauro
leete este ejemplo que hay en powerbuilder y solucinara tu problema.

integer li_FileNum, loops, i

long flen, bytes_read, new_pos

blob b, tot_b

// Set a wait cursor

SetPointer(HourGlass!)

// Get the file length, and open the file

flen = FileLength(sle_filename.Text)

li_FileNum = FileOpen(sle_filename.Text, &

StreamMode!, Read!, LockRead!)

// Determine how many times to call FileRead

IF flen > 32765 THEN

IF Mod(flen, 32765) = 0 THEN

loops = flen/32765

ELSE

loops = (flen/32765) + 1

END IF

ELSE

loops = 1

END IF

// Read the file

new_pos = 1

FOR i = 1 to loops

bytes_read = FileRead(li_FileNum, b)

tot_b = tot_b + b

NEXT

FileClose(li_FileNum)