Hallo,
ich möchte ein Objekt binär in einer IB-Tabelle speichern. Zur Zeit schreibe ich das Objekt in eine TMemoryStream Instanz, um es von dort in ein TBlobField zu schreiben.
<PRE>
FStream := TMemoryStream.Create;
FStream.write(LinkDataTable^,FDataSize);
FStream.Position := 0;
with IBSQL do
begin
Params[0].LoadFromStream(FStream);
Prepare;
ExecQuery;
Transaction.Commit;
end;
</PRE>
Das Objekt verbraucht ca. 8 MB Speicher, sodaß der Vorgang eine kleine Weile in Anspuch nimmt. Wenn ich das Objekt per FileStream in eine Datei schreibe geht dies ca. 5 mal schneller. Dies scheint logisch, da nur ein mal gestreamt wird. Kann man in ein Blob Feld auch direkt schreiben? Also nicht über LoadFromStream oder ähnliches.
Gib es einen anderen Ansatz, um 8MB Binärdaten in einer Tabelle zu speichern?
Danke von Guido.
ich möchte ein Objekt binär in einer IB-Tabelle speichern. Zur Zeit schreibe ich das Objekt in eine TMemoryStream Instanz, um es von dort in ein TBlobField zu schreiben.
<PRE>
FStream := TMemoryStream.Create;
FStream.write(LinkDataTable^,FDataSize);
FStream.Position := 0;
with IBSQL do
begin
Params[0].LoadFromStream(FStream);
Prepare;
ExecQuery;
Transaction.Commit;
end;
</PRE>
Das Objekt verbraucht ca. 8 MB Speicher, sodaß der Vorgang eine kleine Weile in Anspuch nimmt. Wenn ich das Objekt per FileStream in eine Datei schreibe geht dies ca. 5 mal schneller. Dies scheint logisch, da nur ein mal gestreamt wird. Kann man in ein Blob Feld auch direkt schreiben? Also nicht über LoadFromStream oder ähnliches.
Gib es einen anderen Ansatz, um 8MB Binärdaten in einer Tabelle zu speichern?
Danke von Guido.
Comment