Bilder in SQL Datenbank speichern
spacer
Autor Nachricht
Hans-Georg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



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 markieren
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 markieren
1:
DataModule2.PersonalDataSet.post;


gespeichert

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 6027
Erhaltene Danke: 40

XP-Pro, Windows 7
D2005 Prof, XE2, SharpDevelop 2.0, VC#Express
BeitragVerfasst: Mi 28.09.11 11:31 
Eigentlich sollte es so funktionieren.
Vielleicht probierst du nochmal folgendes:
ausblenden Delphi-Quelltext markieren
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.

_________________
Lesen gefährdet die Dummheit.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home