Ver Mensaje Individual
  #42  
Antiguo 03-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi
Qué extraño resulta ese asunto
Bueno, va tomando lógica ¿no? Una limitante de SQLite lo obligaba a hacer esa conversión.

Ahora, lo de

Cita:
Empezado por roman
la clase TStringStream no es compatible con la de delphi
lo dije, evidentemente, sin pensarlo bien. Estaba equivocado. Ya pude pasar el código a Lázarus para leer la imagen de SQLite y exhibirla en un Image:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  BlobField: TBlobField;
  EncodedStream: TStringStream;
  DecodedStream: TStringStream;
  DataString: String;

begin
  BlobField := SQLQuery1.FieldByName('foto') as TBlobField;
  EncodedStream := TStringStream.Create('');

  try
     // Leemos el blob
     BlobField.SaveToStream(EncodedStream);

     // Decodificamos la cadena
     DataString := DecodeString(EncodedStream.DataString);

     // Creamos un nuevo stream con la cadena decodificada
     DecodedStream := TStringStream.Create(DataString);

     try
        // Creamos el bitmap con el blob ya decodificado
        Image1.Picture.Bitmap.LoadFromStream(DecodedStream);
     finally
       DecodedStream.Free;
     end;
  finally
    EncodedStream.Free;
  end;
end;

Al menos me ha funcionado la prueba. Habrá que ver si no tiene algún problema.

// Saludos

Última edición por roman fecha: 03-08-2012 a las 22:38:07.
Responder Con Cita