Also, ich habe es beinahe hingekriegt, allerdings fehlt mit das letzte, entscheidende stück Code um die Datei aus dem Blob zu bekommen.
Delphi-Quellcode:
procedure TfCimput.test1Click(Sender: TObject);
var
Strm1, Strm2: TMemoryStream;
blob, bs: TStream;
sLen: integer;
Fname: ansistring;
begin
// Strm1 := TMemoryStream.Create;
// Strm2 := TMemoryStream.Create;
with fCdata do
begin
if D_DOCS.FieldByName('F_BLB').IsNull then exit;
bs:=D_DOCS.CreateBlobStream(D_DOCS.FieldByName('F_BLB'),bmRead); // <-- MemoryStream geht hier nicht, deswegen nur Stream
bs.Seek(0,soFromBeginning);
bs.ReadBuffer(sLen,sizeof(sLen)); // read lenght filename -stimmt (zb. 7)
showmessage(inttostr(sLen));
bs.Seek(0,soFromBeginning);
bs.ReadBuffer(sLen,sizeof(sLen));
sLen:=sLen;
SetLength(Fname, sLen);
bs.ReadBuffer(Fname[1], sLen); // read filename -stimmt (zb. log.txt)
showmessage(Fname);
odf := GetTempDir+Fname;
bs.ReadBuffer(sLen, SizeOf(sLen)); // read lenght file -stimmt (zb. 4567)
showmessage(inttostr(sLen));
Wie Weiter um den Rest vom Stream als Datei speichern ?
//SaveDialog.FileName := odf;
// TBlobField(D_DOCS.FieldByName('F_BLB')).SaveToFile(SaveDialog.FileName);
end;
bs.Free;
// Strm1.Free;
// Strm2.Free;
end;
Leider stecke ich da Fest.