AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Bilder in die DB speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder in die DB speichern?

Ein Thema von OrNEC · begonnen am 1. Mär 2013 · letzter Beitrag vom 2. Mär 2013
Antwort Antwort
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:35
Datenbank: SQLite • Version: 3 • Zugriff über: SQLite4Delphi Wrapper von Tim Anderson
Hallo Jungs,

ich möchte Bilder in eine DB speichern, nun meine Frage, wie mache ich das am besten, die Bilder in die DB selbst speichern oder nur die Links zu den Bildern? Welche Vor und Nachteile haben diese zwei Vorgehensweisen? Was würdet ihr mir raten?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:38
Nachteil: BLOBs blähen die DB auf. Vorteil: sie sind dann aber auch in der DB und können nicht mal eben im Dateisystem gelöscht werden (es sei denn, die ganze DB wird gelöscht), so dass keine Verweisleichen entstehen können (sollten).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:40
Nachteil: BLOBs blähen die DB auf.
Wird die DB dadurch langsamer? Wenn ja ab wie viel MB, oder kann man das nicht so pauschal sagen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:44
Das kann man AFAIK nicht so pauschal sagen. Manche DBMS sind so klug, bei "dämlichen" Abfragen wie
SELECT * FROM Tabelle BLOBs nicht komplett zurückzugeben, andere ggf. nicht. Wenn man auf Nummer sicher gehen will, erstellt man eine 1:1-Beziehung und legt die BLOBs in eine eigene Tabelle.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:45
Ok! Sag ma kann man FileStream in String umwandeln? Sonst weiß ich nicht wie ich das in die DB inserte.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:46
Wieso kein TBlobStream?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:49
Ich hab ja meine Methode wo ich nicht weiß wie ich ein FileStream übergebe. sSQL ist ein String.

Delphi-Quellcode:
    // Tabelle media füllen
    sSQL := 'INSERT INTO media(medianr, mediatitle, description, status, isbn, publicationyear, insertdate, movedatetime, picture, ';
    sSQL := sSQL + 'fk_publisher_id, fk_place_id, fk_category_id, fk_language_id,';
    sSQL := sSQL + 'fk_author_id, fk_entleiher_id, edition) VALUES ("'+ IntToStr(varmedianr) +'",';
    sSQL := sSQL + '"'+ TitleEdit.Text +'",';
    sSQL := sSQL + '"'+ DescriptionMemo.Text +'",';
    sSQL := sSQL + '"'+ IntToStr(varstatus) +'",';
    sSQL := sSQL + '"'+ ISBNEdit.Text +'",';
    sSQL := sSQL + '"'+ PublicationyearEdit.Text +'",';
    sSQL := sSQL + '"'+ FormatDateTime('dd.mm.yyyy', Now) +'",';
    sSQL := sSQL + '"'+ varmovedatetime +'",';
    sSQL := sSQL + '"'+ fs +'",'; // <---- hier muss FileStream rein, aber wie?
    sSQL := sSQL + '"'+ IntToStr(Integer(PublisherComboBox.Items.Objects[PublisherComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(PlaceComboBox.Items.Objects[PlaceComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(CategoryComboBox.Items.Objects[CategoryComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(LanguageComboBox.Items.Objects[LanguageComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(AuthorComboBox.Items.Objects[AuthorComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(EntleiherComboBox.Items.Objects[EntleiherComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ EditionEdit.Text +'");';
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Bilder in die DB speichern?

  Alt 1. Mär 2013, 21:54
Am besten List du dir mal das Tutorial beim Delphi-Treff durch
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Bilder in die DB speichern?

  Alt 2. Mär 2013, 11:29
Im allgemeinen werden die Blobs ja in einer eigenen Tabelle gespeichert.
Z.B

Tab 1
ID,Titel,Interpret

Tab2
ID,Titel_ID,Titelcover

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Bilder in die DB speichern?

  Alt 2. Mär 2013, 12:03
Im allgemeinen werden die Blobs ja in einer eigenen Tabelle gespeichert.
Ist eigentlich nicht nötig. Jedes halbwegs vernünftig Implementiertes DBMS wird Blob-Felder eh außerhalb des normalen Records speichern so das hier (solange man nicht immer das Blob-Feld in den Selects anfordert) keine nennentswerten Performanceprobleme existieren. Das was du als Blob-Tabelle im ER-Modell wird intern eh schon ähnlich (optimiert) gelöst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 04:46 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