Autor Beitrag
Shmidt_dlt
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Do 19.09.02 22:02 
Wie kann ich eine Bilddatei ohne TDBImage mit hilfe der Zeos komponenten in ein Blob feld speichern?

Ich benutze wie gesagt einen Mysql-Server und will ein Feld vom Typ BLOB füllen???
:shock:
EraserBM
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 26.09.02 14:40 
Hallo erstmal,

also ich würd das mit Bilder in ner Datenbank speichern lassen vor allem bei MySql! MySQL kann BLOBs (binary large objects) nicht fragmentarisch bearbeiten das heißt wenn du ne Abfrage startest muss er das ganze Bild aus der DB laden! Ich hab auch mit MYSql gearbeitet und auch Bilder in der DB gespeichert ! So jetzt hab ich da 10 * 18 KB pro Datensatz in die DB gespeichert, hört sich jetzt nich viel an aber wenn du des dann mit 600 Datensätzen hochrechnest kommst du auf 108 MB und wenn du jetzt bei einer Abfrage die listenfelder mit nimmst dann schaut des mit der Preformance nicht mehr so rosig aus! Ich würd nur Pfad in die DB speicher und dir auf deinem Server ne Verzeichnistruktur anlegen! Aber falls dus unbedingt so haben willst:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
VAR
    Datei                     : TFileStream;
    BlobBild                  : TStream;
BEGIN
    Datei := TFileStream.Create('C:\test.bmp', fmOpenRead);
    BlobBild := ZMySqlTbl1.CreateBlobStream(ZMySqlTbl1.FieldByName('BILD'), bmWrite);
    TRY
        BlobBild.CopyForm(Datei, Datei.Size);
    FINALLY
        BlobBild.Free;
        Datei.Free;
    END;
END;


mfg

Matthias
Shmidt_dlt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Do 26.09.02 20:44 
hmmm danke für den tip das mit den verzeichnissen wollte ich ja auch zuerst machen aber dann wurde mir gesagt das die datensätze über ein PhP - script Übersinternet angezeigt werden sollen...
und das mit dem relativen Pfad geht nicht weil keine ständige domain verfügbar wäre.

Dabei fällt mir gerade en könnte man nicht das mit einem CGI-script machen, das läuft ja immerhin auf dem server ab und kann die bilder dann ja auch von dort laden...

Trotzdem danke erstmal ich werd mal den code ausprobieren und sag dann bescheid

Stephan
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Fr 27.09.02 07:55 
Hi,

was hälst Du denn von folgender Theorie mit den Verzeichnissen :

du legst Dir eine Verzechnisstruktur an, wo Deine Bilder drin abeglegt werden. Dann gibst Du in einem Datenfeld den relativen Pfad ohne Domain an, wo das Bild liegt. Willst Du Dir nun das Bild über Dein Programm anschauen, ergänzt Du einfach den relativen Pfad so, das Dir Dein eigenes Programm das anzeigen kann und für die Webseite übergibste einfach den Eintrag aus der Datenbank.

Beispiel

Datenfeld - Inhalt
----------------------------------------------------------------
Pfad zum Bild - ../Images/bild1.jpg

In der Webseite übergibste dann den Inhalt um das Bild anzuzeigen. Für Deinen Programm formatierste dann den Inhalt folgendermaßen um :

C:\MySQL\Datenbank\Images\Bild1.jpg
EraserBM
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Fr 27.09.02 08:55 
Bingo, genau so gehörts gemacht!

Also hab gestern das Thema nochmal durchgekaut, und folgendes festgestellt:

Wenn du Bilder in ner MySQLDB speicherst und dann mit den Zeos Komponenten darauf zugreifen möchtest wird das schwierig weil die Comps dann so langs werden (die Abfragen) das es mit 2000 Datensätzen a. 10 Bildern kaum noch damit zuarbeiten ist (vielleicht Irre ich mich ja auch, falls ja bitte ich um richtigstellung!)

Soweit ich gesehen hab handled PHP die ganze geschichte eigentlich noch ziemlich gut!


mfg

Matthias
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Fr 27.09.02 14:33 
Hallo Matthias,

ich weiß nicht, wie die ZEOS-Lib das handhabt, aber vom Prinzip ist mir das neu: Das passiert eigentlich nur dann, wenn man das BLOB-Feld auf den Index setzt.

Viele Grüße,

Matthias Brinkmann

_________________
Ha! Es compiliert! Wir können ausliefern!