AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi bilder in datenbank- wie?
Thema durchsuchen
Ansicht
Themen-Optionen

bilder in datenbank- wie?

Ein Thema von jackal · begonnen am 5. Sep 2002 · letzter Beitrag vom 28. Sep 2002
Antwort Antwort
jackal

Registriert seit: 5. Sep 2002
4 Beiträge
 
#1

bilder in datenbank- wie?

  Alt 5. Sep 2002, 12:28
Hallo,
ich habe mit paradox eine datenbank angelegt. in dem dazugehörigen form
habe ich ein db-image feld angelegt. nun möchte ich, dass man bei der späteren programmausführung hingehen kann und bilder (jpeg) von der hd, diskette, cdrom aussuchen und in die datenbank eingabe-maske hinzufügen kann. ich habe ein datei-menü erstellt, das "bild einfügen" heisst. wenn ich das ausführe, wird der datei-browser geöffnet und man kann sich die jpeg´s angucken und auswählen. mein problem ist, dass ich das ausgewählte bild aber nicht in das db-image feld einlesen kann bzw. auch abspeichern. Am Ende soll das Programm so aussehen, dass ich zu jedem Datensatz den ich eingegeben habe auch ein Bild abgespeichert werden kann. Die Bilder sollen nicht von vorne herein in der Datenbank sein, sondern nach und nach je nach Bedarf hinzugefügt werden. Wie mache ich das? Kann mir jemand den Code dazu geben? Ich kriege es irgendwie nicht hin. Bin auch noch nicht so gut in Delphi (benutze D5)
Danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#2
  Alt 5. Sep 2002, 14:18
Hi,
ich würd nach dem Aussuchen des Bildes es in ein Verzeichnis kopieren lassen, und den Pfad dann in der DB abspeichern. Sonst wir die DB so gross.

Dein Vorhaben sollte aber mit
Code:
dbimage1.picture.LoadFromFile("Dateiname");
zu machen sein.

MFg
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
jackal

Registriert seit: 5. Sep 2002
4 Beiträge
 
#3
  Alt 5. Sep 2002, 15:03
Danke für die Antwort.
Dass die DB zu groß wird, ist egal. Noch eine Frage zu Deinem Code:
("Dateiname") Kann ich das so übernehmen, oder muss an dieser Stelle der Name des Bildes stehen?
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#4
  Alt 5. Sep 2002, 15:11
Du musst in da wo jetzt Dateiname steht den Pfad+Dateinamen des Bildes einfügen, also wahrscheinlich:
Code:
dbimage1.picture.loadfromfile(opendialog1.filename);
Sport ist mord...
  Mit Zitat antworten Zitat
jackal

Registriert seit: 5. Sep 2002
4 Beiträge
 
#5
  Alt 5. Sep 2002, 15:46
Danke, ist jetzt klar. Das mache ich im Laufe der Programmierung. Aber wenn das Programm nun fertig ist und ich es quasi weitergegeben habe, dann kann doch der Anwender, wenn er das Programm laufen lässt, keine Bilder mehr hinzufügen. (Die ich eingegeben habe, die sind drin, weil ich die ja mit weitergebe)
Aber ich möchte das Programm so schreiben, dass man nachher bei jedem Programmaufruf immer wieder neue Bilder hinzufügen kann, ohne wieder neue Pfadangaben programmieren zu müssen. Klar wächst die DB, aber das macht nichts, solange man nicht Tausende von Bildern dazulädt.
Wie mache ich das denn?


Zur Info: Ich programmiere eine Datenbank zur Verwaltung von -bitte nicht lachen- Überraschungseiern. Die Eingabe der Daten ist kein Problem, nur soll zu jeder Figur ein Bild hinzu. Und da die Figuren immer mehr werden, werden die Bilder immer mehr und ich möchte halt nicht jedesmal, wenn ein neues Bild hinzu kommt, das Programm neu schreiben bzw. ergänzen müssen.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6
  Alt 6. Sep 2002, 06:34
Hallo jackal,

grundsätzlich funktioniert das Einfügen eines Datensatzes über die Sequenz:

Code:
try
  MyTable.Append;
  MyTableField1.Value := ...;
  ...
  MyTableFieldn.Value := ...;
  MyTable.Post;
except
  on E:exception do
  begin
    ShowMessage('Fehler beim Einfügen: '+E.Message);
    MyTable.Cancel;
  end
end;
Dabei habe ich angenommen, dass die Felder über den Feldeditor der Anwendung hinzugefügt wurden. In deinem speziellen Fall gibt es ein Blob Feld, das nach Hinzufügung über den Feldeditor ein TBlobField Objekt erzeugt. Heißt dein Feld in der DB z.B. "DasBild" und deine Tabelle "MyTable", dann wird das Feld "MyTableDasBild" erzeugt.

Dann kannst du mit Assign oder mit LoadFromFile diesem Feld einen Wert zuweisen:

Code:
try
  MyTable.Append;
  ...
  MyTableDasBild.LoadFromFile(opendialog1.filename);
  MyTable.Post;
except
  on E:exception do
  begin
    ShowMessage('Fehler beim Einfügen: '+E.Message);
    MyTable.Cancel;
  end
end;
Und drin isses .
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
jackal

Registriert seit: 5. Sep 2002
4 Beiträge
 
#7
  Alt 10. Sep 2002, 11:56
@MrSpock
Vielen Dank für deine Hilfe, mit deiner Unterstützung klappts
jackal
  Mit Zitat antworten Zitat
Scotch

Registriert seit: 28. Sep 2002
10 Beiträge
 
#8
  Alt 28. Sep 2002, 22:04
Hallo Jackal,

hatte vor einiger Zeit das selbe Problem wie Du.
Vieleicht siehst Du dir mal folgenden Beitrag an,
http://www.auq.de/viewtopic.php?t=227&highlight=
hat mir viel weiter geholfen.
Ach ja ich weiß nicht ob man es dir schon gesagt hat, aber mit der
DBImage Komponente kannst Du nur *.BMP Dateien anzeigen lassen.
Aber wie gesagt sieh dir den Link an.

Cu Scotch.

PS. Wenn du ne kleine Demo brauchst mußt du bescheit sagen.
Die habe ich mit der hilfe die ich bekommen habe unter D6
erstellt.
Ingo
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:07 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