Recuperar conteúdo de campo blob

Firebird

02/02/2005

Olá amigos.

Estou desenvolvendo uma aplicação doméstica onde gravo arquivos em campos do tipo blob.

Conseguí gravar da seguinte forma:

Qry.ParamByName( ´CAMPO_BLOB´ ).LoadFromFile( OpenDialogArquivos.FileName, ftblob );
Qry.EXECSQL;

Para recuperar o arquivo estou fazendo assim:

var BlobStream : TBlobStream;
FileStream : TFileStream;
begin
BlobStream := TBlobStream.Create( QryArquivos.FieldByName( ´CAMPO_BLOB´ ) as TBlobField, bmRead );
FileStream := TFileStream.Create( ´c:\ARQUIVO.EXE´ ), fmCreate or fmOpenWrite);
FileStream.CopyFrom( BlobStream, 0);
end;

só que já na primeira linha ocorre o erro:
EinvalidCast with message ´Invalid Class TypeCast´

Estou seguindo o exemplo de um artigo sobre campos blob do site firebase.com.br.

a propósito o tipo do campo é: BLOB sub_type 0 segment size 80

Será que alguém poderia me dar uma dica?

Uso firebird 1.5 e Delphi 6 com ibx.

Muito grato.


Fsflorencio

Fsflorencio

Curtidas 0

Melhor post

Afarias

Afarias

02/02/2005

uma outra forma é fazer::


var 
  FileStream: TFileStream; 
begin 
  FileStream := TFileStream.Create( ´c:\ARQUIVO.EXE´ ), fmCreate or fmOpenWrite); 
  TBlobField(QryArquivos.FieldByName( ´CAMPO_BLOB´ )).SaveToStream(FileStream); 

  {...}



T+


GOSTEI 2

Mais Respostas

Fsflorencio

Fsflorencio

02/02/2005

Funcionou.

Obrigado!


GOSTEI 0
POSTAR