Fórum Recuperar/Salvar Tipo OID DBExpress #26585
09/08/2006
0
Bom dia.
Alguém sabe me informar como recuperar/salvar arquivos de campos do tipo OID.
Com campos Bytea eu consigo, mas quando tento, por exemplo, ler um OID o DBExpress me mostra um campo do tipo Integer. Sei que o OID armazena somente a identificação do objeto nele armazenado, mas como faço para ler esse objeto, por exemplo para um Stream?
Para ler de um Bytea o código que utilizei foi o seguinte, o que não funciona para um OID:
var
lBlob :TStream;
lFile : TFileStream;
begin
SqlDS.Close;
SqlDS.CommandText := ´select by_picture from public.teste where id_teste = :id´;
SqlDS.Params[0].AsInteger := StrToInt(edIdSelect.Text);
SqlDS.Open;
lBlob := SqlDS.CreateBlobStream(SqlDS.Fields[0], bmRead);
lFile := TFileStream.Create(´c:\tmp\myfile.xxx´, fmCreate or fmOpenWrite);
try
lFile.CopyFrom(lBlob, 0);
finally
lBlob.Free;
lFile.Free;
end;
Alguém sabe me informar como recuperar/salvar arquivos de campos do tipo OID.
Com campos Bytea eu consigo, mas quando tento, por exemplo, ler um OID o DBExpress me mostra um campo do tipo Integer. Sei que o OID armazena somente a identificação do objeto nele armazenado, mas como faço para ler esse objeto, por exemplo para um Stream?
Para ler de um Bytea o código que utilizei foi o seguinte, o que não funciona para um OID:
var
lBlob :TStream;
lFile : TFileStream;
begin
SqlDS.Close;
SqlDS.CommandText := ´select by_picture from public.teste where id_teste = :id´;
SqlDS.Params[0].AsInteger := StrToInt(edIdSelect.Text);
SqlDS.Open;
lBlob := SqlDS.CreateBlobStream(SqlDS.Fields[0], bmRead);
lFile := TFileStream.Create(´c:\tmp\myfile.xxx´, fmCreate or fmOpenWrite);
try
lFile.CopyFrom(lBlob, 0);
finally
lBlob.Free;
lFile.Free;
end;
Amt
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)