Fórum gravar arquivo no firebird #279285
28/04/2005
0
Como eu faço para gravar um arquivo no Firebird ?
Estou fazendo uma aplicação onde o sistema recebe e-mails, e estes e-mails vem com arquivos em anexo. Preciso então gravar estes anexos em uma banco de dados para ficarem arquivados.
Grato,
Denis
Curtir tópico
+ 0Posts
28/04/2005
Ariovaldo
Gostei + 0
29/04/2005
Raserafim
Gostei + 0
29/04/2005
Denis
Obrigado pela força. Acho que descobri com fazer. Ainda não testei mas parece ser isso mesmo. Segue a função para mais alguém que tenha a mesma dúvida.
//----------- Gravar Blob
var
m : TQuery;
begin
m:=TQuery.Create(self);
m.DatabaseName:=´Um\databasename\qualquer´;
m.sql.add(´UPDATE TABELA_TAL´);
m.sql.add(´SET campo_blob=:_nomearq´);
m.sql.add(´WHERE campo_chave =1´);
try
m.ParamByName(´_nomearq´).LoadFromFile(´C:\TEMP\TESTE.DOC´,ftBlob);
m.ExecSQL;
except
on e:exception do
begin
ShowMessage(e.message);
end;
end;
end;
//----------------- Ler blob
var
BlobStream : TBlobStream;
FileStream : TFileStream;
m : Tquery;
begin
m:=TQuery.Create(self);
m.DatabaseName:=´Um\databasename\qualquer´;
m.sql.add(´SELECT campo_chave, campo_blob´);
m.sql.add(´FROM TABELA_TAL´);
m.sql.add(´WHERE campo_chave =1´);
// Salvando o arquivo em disco
try
m.Open;
BlobStream := TBlobStream.Create(m.Fieldbyname(´campo_blob´) as TBlobField, bmRead);
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;
m.Free;
end;
end;
achei estas funções no site www.firebase.com.br. Tem uns artigos muito bons por lá.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)