![]() |
Bilder über client dataset in eine Db speichern
Habe ein Clientdataset und will Bilder in die xml ablegen.
vorher habe ich das mit einer ttable gemacht und es in eine DB Datei gespeichert. Jetzt geht es mit dem clientdataset nicht mehr Hier der code zum einfügen
Delphi-Quellcode:
danach klicke ich auf speichern mittels Clientdataset1.post;
if OpenpictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenpictureDialog1.FileName); Woran kann es liegen |
AW: Bilder über client dataset in eine Db speichern
Was geht denn nicht? Kommt eine Fehlermeldung?
|
AW: Bilder über client dataset in eine Db speichern
nee fehler kommt nicht ich setzte das dataset auf edit dann hole ich das bilde siehe code oben. das bild wird auch im Fenster angezeigt dann gehe ich auf speichern und setze das dataset auf post.
Beim aufrufen des datensatzes ist das bild aber nicht drinne. Es kommt keine Fehlermeldung |
AW: Bilder über client dataset in eine Db speichern
Zitat:
|
AW: Bilder über client dataset in eine Db speichern
das ist die bild holen procedure vorher wird clientdataset1.edit gesetzt
Delphi-Quellcode:
danach speichere ich hiermit
procedure TForm1.Button5Click(Sender: TObject);
begin ShellExecute(handle,PChar('open'),PChar('mspaint.exe'),PChar(''),PChar(ExtractFilePath(Application.Exename)),SW_SHOW); clientdataset1.Edit; if OpenpictureDialog1.Execute then DBImage1.Picture.LoadFromFile(OpenpictureDialog1.FileName); end;
Delphi-Quellcode:
wo liegt denn der fehler
If Clientdataset1.State in [dsEdit,dsInsert] then
Clientdataset1.Post; das clientdataset1 speichert alles in eine XML Datei habe nur das dataset und ne datasource kompo habe für das bild ein dbimage gesetzt und die felder zugeordnet |
AW: Bilder über client dataset in eine Db speichern
Liste der Anhänge anzeigen (Anzahl: 1)
hier noch die Einstellung fürs field im clientdataset
|
AW: Bilder über client dataset in eine Db speichern
Der einzige Unterschied, den ich sehe ist, daß bei mir Size = 0 und bei dir Size = 1 ist. Ansonsten macht mein Code erstmal dasselbe.
|
AW: Bilder über client dataset in eine Db speichern
ist bei dir auch nur ein cliendataset und ne datasource
hast du als field type blob oder grafic ich verstehe es nicht. |
AW: Bilder über client dataset in eine Db speichern
wie es aussieht haben die datasets Probleme mit jpeg Dateien denn mit bmp funktioniert es. gibt es da irgendwas um dieses Problem zu lösen. habe schon jpeg in die uses Klausel aufgenommen
|
AW: Bilder über client dataset in eine Db speichern
Hallo,
also, wenn Du nur die Bilddaten speichern möchstest (und Dir das ursprüngliche Format egal ist), dann kannst Du mal folgedes versuchen:
Delphi-Quellcode:
Gruß
uses
jpeg; function LoadBitmap (const Filename : string) : TBitmap; begin Result := TBitmap.Create; try Result.LoadFromFile (Filename) except FreeAndNil (Result) // raise an exception or whatever you wanna do end end; function LoadIcon (const Filename : string) : TBitmap; var i : TIcon; begin i := TIcon.Create; try Result := nil; try i.LoadFromFile (Filename); Result := TBitmap.Create; with Result do begin Height := i.Height; Width := i.Width; Canvas.Draw (0, 0, i) end except // raise an exception or whatever you wanna do end finally FreeAndNil (i) end end; function LoadJPEG (const Filename : string) : TBitmap; var i : TJPEGImage; begin i := TJPEGImage.Create; try Result := nil; try i.LoadFromFile (Filename); Result := TBitmap.Create; Result.Assign (i); except // raise an exception or whatever you wanna do end finally FreeAndNil (i) end end; function LoadGraphic (const Filename : string) : TBitmap; var s : string; begin s := LowerCase (ExtractFileExt (Filename)); if Pos ('.', s) = 1 then Delete (s, 1, 1) else s := ''; if s = '' then raise Exception.Create ('File extention of the given filename ought not to be empty'); if s = 'bmp' then begin Result := LoadBitmap (Filename); Exit end; if (s = 'jpg') or (s = 'jpeg') then begin Result := LoadJPEG (Filename); Exit end; if s = 'ico' then begin Result := LoadIcon (Filename); Exit end; // weitere Grafikformate abklopfen und entsprechende Funktionen schreiben // falls es keine gültige Dateierweiterung gibt // raise an exception or whatever you wanna do // or Result := nil end; procedure TForm1.Button1Click(Sender: TObject); var b : TBitmap; begin if OpenPictureDialog1.Execute then try b := LoadGraphic (OpenpictureDialog1.FileName); ClientDataSet1.Append; ClientDataSet1.FieldByName ('Passbild').Assign (b); ClientDataSet1.Post; finally FreeAndNil (b) end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz