AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Foto in DB speichern?

Ein Thema von khh · begonnen am 7. Jan 2009 · letzter Beitrag vom 7. Jan 2009
Antwort Antwort
Seite 2 von 2     12   
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Foto in DB speichern?

  Alt 7. Jan 2009, 16:47
nochmal Blob

bei der Zuweisung
FQuery1['ARTFOTO']:= FARTFOTO;

FARTFOTO ist von Type TBLOBField ,bekomme ich nen Fehler :
Error: Incompatible type for arg no. 2: Got "TBlobField", expected "Variant"

was mach ich da noch falsch?


dane Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Foto in DB speichern?

  Alt 7. Jan 2009, 16:51
Zeig doch mal die Routine zum Speichern (vielleicht zeig ich Dir dann auch meine ).
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
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#13

Re: Foto in DB speichern?

  Alt 7. Jan 2009, 16:56
Zitat von DeddyH:
Zeig doch mal die Routine zum Speichern (vielleicht zeig ich Dir dann auch meine ).
also wie gesagt artfoto habe ich als TBLOBfield definiert.

die restliche Felder hab ich der Übersichtlichkeit wegen hier mal weggelassen.



FQuery1.SQL.clear;
FQuery1.SQL.add('select ');
FQuery1.SQL.add('*');
FQuery1.SQL.add('from artikel where ');
FQuery1.SQL.add('ARTIKEL_ID = :ARTIKEL_ID');
FQuery1.ParamByName('ARTIKEL_ID').AsInteger := FARTIKEL_ID;
FQuery1.open; // liefert eine leere datenmenge
FQuery1.append; // neuen Datensatz anhängen
FQuery1['ARTFOTO']:= FARTFOTO;

FhwdQuery1.post;
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Foto in DB speichern?

  Alt 7. Jan 2009, 17:04
Wieso holst Du Dir erst eine leere Datenmenge, statt gleich ein Insert zu machen?
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
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Foto in DB speichern?

  Alt 7. Jan 2009, 17:15
Zitat von DeddyH:
Wieso holst Du Dir erst eine leere Datenmenge, statt gleich ein Insert zu machen?
weil das Ganze ohne das open nicht funktioniert hat.
Lasse mich aber gerne eines Besseren belehren.
EDIT: ich habe append anstatt insert verwendet, weil ich den DS an der geöffneten Datenmenge anhängen wollte und nicht irgendwo zwischenreinschieben.

Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
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
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#17

Re: Foto in DB speichern?

  Alt 7. Jan 2009, 17:31
ok, ich danke dir

Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz