Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
Re: Foto in DB speichern?
7. Jan 2009, 17:27
Hier mal meine Routine (FBLib statt ZEOS, nicht wundern). Allerdings speichere ich vorher ggf. den neuen Datensatz ab und mache danach ein Update, um nicht alles doppelt schreiben zu müssen:
Delphi-Quellcode:
procedure TMyClass.StorePic;
var aStream: TMemoryStream;
begin
if FPicModified then
begin
with TFBLParamDsql.Create( nil) do
try
Transaction := FTransaction;
if not Transaction.InTransaction then
Transaction.StartTransaction;
SQL.Text := ' UPDATE Tabelle SET Bild=:bild WHERE ID=:id';
Prepare;
ParamByNameAsInt64(' id',FID);
if Assigned(FBild) then
begin
aStream := TMemoryStream.Create;
try
FBild.SaveToStream(aStream);
aStream.Position := 0;
BlobParamByNameLoadFromStream(' bild',aStream);
finally
aStream.Free;
end;
end
else
ParamByNameAsNull(' bild');
try
ExecSQL;
except
raise;
end;
FPicModified := false;
finally
Free;
end;
end;
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|