[Lazarus-es] campos bytea con imagenes y DBlistbox

Paola Bruccoleri pbruccoleri en adinet.com.uy
Vie Feb 4 14:42:20 CET 2011


El 04/02/2011 11:04 a.m., David Enamorado escribió:
> Buenos dias lista,  amigos estoy  desarrollando un proyecto con 
> lazarus pero he tenido un problema con la insercion de imagenes en la 
> base de datos ( postgres). la a accion de grabar registro la realizo 
> de la forma Tabla.fieldbyname('campoTipoString').asstring:= 
> edit.tex; , de esta forma funciona bien para campos que no sean tipo 
> imagen, mi pregunta es ¿como es la forma correcta para ingresar una 
> imagen a la base de datos utilizando esta tecnica?, la imagen la tengo 
> un un componente Timage. 
Hola David..

te pego un mail de José Mejuto de hace un tiempito, con una respuesta 
que puede servirte..

Hello Christian,

Saturday, December 11, 2010, 9:37:31 PM, you wrote:

CO>        SQL.Add('select ' + sImageField );
CO>        SQL.Add('from '+ sTable);
CO>        SQL.Add('where '+ sCondicion);
CO>        Open;
CO>        Edit;
CO>  TBlobField(FieldByName(sImageField)).LoadFromStream(TheImage);
CO>        Post; ///Probe con ApplyUpdates y fue lo mismo/
CO>        FreeAndNil(TheImage);
CO>  *end;
CO>  end; *

Sin ver "sCondition" es un poco difícil. Si tabla tiene un primary
key, seleccionala también en el select, por que aparenta un bug en
el query al generar el update sql sin un campo "primary key".

De todos modos, lo lógico sería hacer eso son un EXECSQL no con un
Open :-?

SQL.Text:='Update :pTable Set :pfield=:pfieldvalue where '+sCondition;
ParamByName('pTable').asString:=sTable;
ParamByName('pField').asString:=sImageField;
ParamByName('pField').LoadFromStream(TheImage);

ExecSQL;







More information about the Lazarus-es mailing list