Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#16

Re: Foto in DB speichern?

  Alt 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
  Mit Zitat antworten Zitat