Recuperar conteúdo de campo blob

02/02/2005

0

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

Responder

Post mais votado

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+


Afarias

Afarias
Responder

Mais Posts

03/02/2005

Fsflorencio

Funcionou.

Obrigado!


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar