Salve, galera. To usando rad 2010, zeos7 e postgresql 8.
No bd criei um campo foto do tipo bytea.
No form coloquei um OpenPictureDialog e um buttom para carregar uma 
imagem (jpg).
O código do buttom:

procedure TfrmAlunos.SpeedButton1Click(Sender: TObject);
var
   FileStream : TFileStream;
   BlobStream : TStream;
begin
   inherited;
   if not (dtsCadastro.DataSet.State in ([dsEdit, dsInsert])) then
   dtsCadastro.DataSet.Edit;
   if OpenPictureDialog1.Execute then
   begin
     FileStream:=TFileStream.Create(OpenPictureDialog1.FileName, 
fmOpenRead or fmShareDenyWrite);
     
BlobStream:=dtsCadastro.DataSet.CreateBlobStream(dmOPR.cds_alunofoto, 
bmWrite);
     try
       BlobStream.CopyFrom(FileStream,FileStream.Size);
     finally
       FileStream.Free;
       BlobStream.Free;
     end;
   end;
end;

Tenho também um image para mostrar a foto e no onchange do 
dtsCadastro(datasource):
var
   BlobStream : TStream;
   JPEGImage : TJPEGImage;
begin
   inherited;
   if dmOPR.cds_alunofoto.BlobSize <> 0 then
   begin
   BlobStream:= 
dtsCadastro.DataSet.CreateBlobStream(dmOPR.cds_alunofoto, bmRead);
     JPEGImage:= TJPEGImage.Create;
     try
       JPEGImage.LoadFromStream(BlobStream);
       Image1.Picture.Assign(JPEGImage);
     finally
       BlobStream.Free;
       JPEGImage.Free
     end;
     end
   else
     Image1.Picture:=nil;
end;

Bom, carrega a imagem normal e mostra no image sem problemas, só que não 
grava os dados no bd. Olhando o log, retorna isso:

Postgres NOTICE, msg: AVISO:  uso de \\ fora do padrão em cadeia de 
caracteres at character 229
HINT:  Utilize a sintaxe de escape de cadeia de caracteres para barras 
invertidas, i.e., E'\\'.

Como posso resolver isto?

[]'s

Stclara.

Responder a