Fórum Recuperando um arquivo de um camp BLOB #268500
14/02/2005
0
Olá pessoal,
estou desenvolvendo um sistema onde tenho de manipular campos Blob do sub tipo 1 (texto). A inserção da informação já foi feita, agora estou tendo diciculdades para recuperar o arquivo do campo, estou usando o seguinte código para realizar a recuperação:
var
BlobStream : TBlobStream;
FileStream : TFileStream;
begin
// Salvando o arquivo em disco
try
ClientDataSet.open;
BlobStream := TBlobStream.Create(ClientDataSet.Fieldbyname(´campo_blob´) as TBlobField, bmRead); //AQUI ACONTECE O ERRO
FileStream := TFileStream.Create(´C:\TEMP\MEU_DOC.DOC´, fmCreate or fmOpenWrite);
FileStream.CopyFrom(BlobStream, 0);
ShowMessage(´Documento salvo em disco. Clique em [OK] para prosseguir ...´);
finally
// Liberando memoria
FileStream.Free;
BlobStream.Free;
end;
quando da o erro fala que o type cast não foi possível...
Se alguém souber outra maneira também pode falar!!
Desde já agradeço a atenção...
estou desenvolvendo um sistema onde tenho de manipular campos Blob do sub tipo 1 (texto). A inserção da informação já foi feita, agora estou tendo diciculdades para recuperar o arquivo do campo, estou usando o seguinte código para realizar a recuperação:
var
BlobStream : TBlobStream;
FileStream : TFileStream;
begin
// Salvando o arquivo em disco
try
ClientDataSet.open;
BlobStream := TBlobStream.Create(ClientDataSet.Fieldbyname(´campo_blob´) as TBlobField, bmRead); //AQUI ACONTECE O ERRO
FileStream := TFileStream.Create(´C:\TEMP\MEU_DOC.DOC´, fmCreate or fmOpenWrite);
FileStream.CopyFrom(BlobStream, 0);
ShowMessage(´Documento salvo em disco. Clique em [OK] para prosseguir ...´);
finally
// Liberando memoria
FileStream.Free;
BlobStream.Free;
end;
quando da o erro fala que o type cast não foi possível...
Se alguém souber outra maneira também pode falar!!
Desde já agradeço a atenção...
Jsaraujo
Curtir tópico
+ 0
Responder
Posts
14/02/2005
Ipc$
Olá, tente assim:
var MS:TMemoryStream;
begin
MS := TMemoryStream.Create;
TBlobField(ClientDataSet.Fieldbyname(´campo_blob´)).SaveToStream(MS);
...
...
MS.Free;
end;
var MS:TMemoryStream;
begin
MS := TMemoryStream.Create;
TBlobField(ClientDataSet.Fieldbyname(´campo_blob´)).SaveToStream(MS);
...
...
MS.Free;
end;
Responder
Gostei + 0
15/02/2005
Jsaraujo
Valeu amigo, sua dica funcionou belezinha!!!!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)