Autor Beitrag
Hans-Georg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Mi 28.09.11 10:55 
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

ausblenden 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

ausblenden Delphi-Quelltext
1:
DataModule2.PersonalDataSet.post;					


gespeichert

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 28.09.11 11:31 
Eigentlich sollte es so funktionieren.
Vielleicht probierst du nochmal folgendes:
ausblenden 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; // Hinweis siehe unten
  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.