hola a todos. estoy realizando la creacion de una interfaz en delphi el cual almacena informacion en una tabla de bd interbase. La tabla la e llamado articuloImagen y en su estructura tiene un campo de tipo blob ,algo asi:
Código SQL
[-]
CREATE TABLE ARTICULOIMAGEN
(
"TIPINV" INTEGER NOT NULL,
"CODART" VARCHAR(40) NOT NULL,
"CODIMG" INTEGER NOT NULL,
"DIRIMG" VARCHAR(150),
"IMAGEN" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"FORMATO" VARCHAR(3),
)
lo particular en esto es que en la interfaz , utilizo componentes standar ; que luego los verifico bajandolo hacia una clase , que mantiene la misma estructura , pero el problema es que no se como declarar en mi clase el cambo imagen. lo que he hecho no me a resultado. alguien sabe como poder realizar esto?
Código Delphi
[-]
Tart_imagen = Class
Private
ptipinv :integer;
pcodart :string;
pcodimg :integer;
pdirimg :string;
pimagen :TBlobData;
pformato :Variant;
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;
Constructor Create;
procedure Clear;
end;
constructor Tart_imagen.Create;
begin
inherited;
Clear;
end;
procedure Tart_imagen.Clear;
begin
tipinv:=0;
codart:='';
codimg:=0;
dirimg:='';
imagen:=nil;
formato:='';
end;
function GetArticulo_imagen(Conexion:TADOConnection;Articulo_imagen:Tart_imagen):boolean;
var
sw : Boolean;
PArtImagen : TADODataSet;
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.imagen :=PArtImagen.FieldByName('imagen').Value;
Articulo_imagen.formato :=PArtImagen.FieldByName('formato').Value;
SW:=True;
end;
PArtImagen.Close;
PArtImagen.Free;
Result:=sw;
end;
nota : si me dieran alguna recomendacion adicional, se los agradeceria mucho. gracias
