Que tal
Te paso unas modificaciones, con esto te debe funcionar, haber que tal te parece.
Código Delphi
[-]
Tart_imagen = Class
Private
ptipinv :integer;
pcodart :string;
pcodimg :integer;
pdirimg :string;
pformato :Variant;
strImagen: TMemoryStream;
Public
Property tipinv :integer read ptipinv write ptipinv;
Property codart :string read pcodart write pcodart;
Property codimg :integer read pcodimg write pcodimg;
Property dirimg :string read pdirimg write pdirimg;
Property imagen :tblobdata read pimagen write pimagen;
Property formato :string read pformato write pformato;
property Imagen: TMemoryStream read strImagen write strImagen;
Constructor Create;
procedure Clear;
end;
constructor Tart_imagen.Create;
begin
inherited;
strImagen:= TMemoryStream.Create;
Clear;
end;
procedure Tart_imagen.Clear;
begin
tipinv:=0;
codart:='';
codimg:=0;
dirimg:='';
imagen:=nil;
formato:='';
strImagen.Clear;
end;
function GetArticulo_imagen(Conexion:TADOConnection;Articulo_imagen:Tart_imagen):boolean;
var
sw : Boolean;
PArtImagen : TADODataSet;
fldCampo: TField;
begin
Sw:=False;
PArtImagen := TADODataSet.Create(nil);
PArtImagen.Connection:=Conexion;
PArtImagen.CommandText:=' Select tipinv,codart,codimg,dirimg,imagen,formato'+
' from art_imagen '+
' where tipinv = : p01 and Codart = : p02 and Codimg = : p03 ';
PArtImagen.Parameters.ParamByName('p01').Value:=Articulo_imagen.tipinv;
PArtImagen.Parameters.ParamByName('p02').Value:=Articulo_imagen.codart;
PArtImagen.Parameters.ParamByName('p03').Value:=Articulo_imagen.codimg;
PArtImagen.Open;
PArtImagen.First;
if not(PArtImagen.Eof) then
begin
Articulo_imagen.tipinv :=PArtImagen.FieldByName('tipinv').Value;
Articulo_imagen.codart :=PArtImagen.FieldByName('codart').Value;
Articulo_imagen.codimg :=PArtImagen.FieldByName('codesp').Value;
Articulo_imagen.dirimg :=PArtImagen.FieldByName('dirimg').Value;
Articulo_imagen.formato :=PArtImagen.FieldByName('formato').Value;
fldCampo:= FieldByName('imagen');
Articulo_imagen.strImagen:= CreateBlobStream(fldCampo, bmRead);
SW:=True;
end;
PArtImagen.Close;
PArtImagen.Free;
Result:=sw;
end;