Thema: Delphi Timage aus Blobfeld

Einzelnen Beitrag anzeigen

WS1976
(Gast)

n/a Beiträge
 
#8

Re: Timage aus Blobfeld

  Alt 10. Apr 2007, 16:28
hallo,
habe eine komplette Unit gebaut:

1.)
Procedure save_file_to_access (s:TObject;pfad,fname,name,Fieldname:string);
Speichert ein Icon komplett in einer Access Datenbank
s --> TADOTable
pfad --> Pfad des Icons
fname --> Filename des Icons
name --> Bezeichner des Namens in der Accessdatenbank
Fieldname --> Bezeichner des OLE Feldes in der Accesdatenbank

2.)
Procedure save_access_to_file(s: TObject;pfad,fname,name,Fieldname:string);
Holt ein Icon aus einer Access datenbank und legt es als File ab.
s --> TADOTable
pfad --> Pfad des Icons
fname --> Filename des Icons
name --> Bezeichner des Namens in der Accessdatenbank
Fieldname --> Bezeichner des OLE Feldes in der Accesdatenbank

3.)
Procedure save_access_to_Image(s,t: TObject;Fieldname:string);
Holt ein Icon aus einer Access Datenbank und stellt es als Timage dar.
s --> TADOTable
T --> Timage in dem das Icon erscheinen soll
Fieldname --> Bezeichner des OLE Feldes in der Accesdatenbank


Delphi-Quellcode:
unit U_blobmanage;

interface
uses
DB, Classes, ADODB, ExtCtrls;

Procedure save_file_to_access(s: TObject;pfad,fname,name,Fieldname:string);
Procedure save_access_to_file(s: TObject;pfad,fname,name,Fieldname:string);
Procedure save_access_to_Image(s,t: TObject;Fieldname:string);

implementation

Procedure save_file_to_access(s: TObject;pfad,fname,name,Fieldname:string);
var blobF : TBlobField;
begin
   TADOTable(s).Active:=true;
   TADOTable(s).Insert;
   if (Pfad<>'') then
      if (pfad[length(pfad)]<>'\') then pfad:=pfad+'\';
   TADOTable(s).FieldByName(name).AsString:=fname;
   blobF := TADOTable(s).FieldByName(Fieldname) as TBlobField;
   blobf.LoadFromFile(pfad+fname);
   TADOTable(s).Post;
end;

Procedure save_access_to_file(s: TObject;pfad,fname,name,Fieldname:string);
var
  blobF : TBlobField;
begin
   TADOTable(s).Active:=true;
   TADOTable(s).first;
   if (Pfad<>'') then
      if (pfad[length(pfad)]<>'\') then pfad:=pfad+'\';
   fname:=TADOTable(s).FieldByName(name).AsString;
   blobF := TADOTable(s).FieldByName(Fieldname) as TBlobField;
   blobf.SaveToFile(pfad+fname);
end;

Procedure save_access_to_Image(s,t: TObject;Fieldname:string);
var AStream: TStream;
begin
  TADOTable(s).Active := true;
  TADOTable(s).First;
  AStream := TADOTable(s).CreateBlobStream(TADOTable(s).FieldByName(Fieldname), bmRead);
  TImage(t).Picture.Icon.LoadFromStream(AStream);
end;
end.
Vielleicht kann jemand den Code gebrauchen.
Viele Grüsse und vielen Dank besonders an Neutral General und dataspider.
  Mit Zitat antworten Zitat