Hallo
Die Prozedur will irgendwie nicht so ganz. Ich musste sie abändern wegen Fehlern, zB bei: Strm1.Write(Strm2.Buffer^, Strm2.Size)); Trotzdem klappt es nicht.
Ich frag mich ob ein Memorystream überhaut zuverlässig genug ist ?
Delphi-Quellcode:
Strm1 := TMemoryStream.Create;
Strm2 := TMemoryStream.Create;
Fname := 'C:\irgendeinedatei.xyz';
blob:=D_DOCS.CreateBlobStream(D_DOCS.FieldByName('F_BLB'),bmWrite);
try
blob.Seek(0,soFromBeginning);
Strm2.LoadFromFile(Fname);
sLen:=Length(ExtractFileName(Fname));
Strm1.Write(sLen, sizeof(sLen));
Strm1.Write(Fname[1], sLen);
sLen:= Strm2.Read(sLen,SizeOf(sLen));
Strm1.Write(sLen, sizeof(sLen));
Strm1.Write(Strm2.Memory^,(sLen));
try
Blob.CopyFrom(Strm1, Strm1.Size);
finally
Strm1.Free;
Strm2.Free;
end;
finally
blob.Free;
D_DOCS.Post;
end;