Also ich würde mal damit beginnen, die Blobs mit Hilfe von
Access (also dem Frontend) zu befüllen.
Unten folgt dann ein Procedure, mit der Du alle Blobs als Dateien auf der Festplatte speichern kannst.
Wenn du die Dateien mit einem
Hexeditor anschaust, dann siehst du das
Access vor den Bilddaten noch einen
Ole-Header einschiebt.
Wenn du aus deinem Programm Bilder speichern möchtest, dann musst du diesen Header natürlich beachten.
Delphi-Quellcode:
// alle Blob-Felder des Datasets als Dateien im aktuellen Verzeichnis speichern
procedure TForm1.SaveBlobs(ds:TDataSet);
var
i , j : Integer;
flds_count : Integer;
flds :
array of TBlobField;
ext :
string;
begin
flds_count := 0;
for i:=0
to ds.Fields.Count -1
do
begin
if ds.Fields[i].IsBlob
then
Inc(flds_count);
end;
if flds_count = 0
then
raise Exception.Create('
no Blob fields found');
SetLength(flds, flds_count);
j := 0;
for i:=0
to ds.Fields.Count -1
do
begin
if ds.Fields[i].IsBlob
then
begin
flds[j] := ds.Fields[i]
as TBlobField;
Inc(j);
end;
end;
ds.First;
while not ds.Eof
do
begin
ext := '
.'+IntToStr(ds.RecNo);
for i := 0
to flds_count-1
do
begin
flds[i].SaveToFile(flds[i].FieldName+ext);
end;
ds.Next;
end;
end;