Hans-Georg - Mi 28.09.11 10:55
Titel: Bilder in SQL Datenbank speichern
Hallo
Ich möchte Bilder (JPeg)in einer SQL Datenbank (Access)speichern
und das bild dann in einer DBImage anzeigen jetzt habe ich das
Problem das das Bild offensichtlich nicht gepeichert wird alle anderen Daten
schon was mache ich falsch.
Danke im vorraus
Hans-Georg
Code der DBImage (Bild aussuchen)funktioniert
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm4.SpeedButton2Click(Sender: TObject); var T : String; begin Try OpenPictureDialog1.Execute; T := OpenPictureDialog1.Filename; DBImage1.Picture.LoadFromFile(T); except MessageBox(0,'Sie haben kein Bild geladen','Abbruch',16); end; end; |
Der Datensatz wird dann mit
Delphi-Quelltext
1:
| DataModule2.PersonalDataSet.post; |
gespeichert
Moderiert von
Martok: Delphi-Tags hinzugefügt
jasocul - Mi 28.09.11 11:31
Eigentlich sollte es so funktionieren.
Vielleicht probierst du nochmal folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm4.SpeedButton2Click(Sender: TObject); var T : String; begin Try OpenPictureDialog1.Execute; T := OpenPictureDialog1.Filename; DataModule2.PersonalDataSet.Edit; DBImage1.Picture.LoadFromFile(T); DataModule2.PersonalDataSet.Post; except DataModule2.PersonalDataSet.Cancel; MessageBox(0,'Sie haben kein Bild geladen','Abbruch',16); end; end; |
Im Prinzip also vorher den Datensatz in den Edit-Modus bringen.
Das Post direkt dahinter muss theoretisch nicht sein, aber ich habe schon Fälle erlebt, wo man beim Verlassen eines datenbanksensitiven Feldes ein Cancel verursacht. Dann nützt das spätere Post nichts mehr.
Grundsätzlich:
Warum speicherst du Bilder in der Datenbank? Der Zugriff ist langsamer, als über die direkte Datei und bläht die DB auch nur unnötig auf.
Wenn du also keinen wichtigen Grund hast, empfehle ich, die Bilder nicht in der DB zu speichern.