Forum - Beitrag anzeigen

Datenbanken/SQL - RE: MS Access / Binärdaten / OLE Objekt

Icon Pfeil Startseite Icon Pfeil Kategorie Icon Pfeil Suche

Icon Forum Beitrag vom 28.02.2006 13:16 (646 Aufrufe)
Name: iguana
Titel: RE: MS Access / Binärdaten / OLE Objekt
Inhalt: Hallo

Ich würde dir raten es so zu machen wie Claus dir das vorgeschlagen hat, mit dem kleinen Unterschied, dass du nichts in die DB schreibst, sondern den Ordnernamen mit den Bildern zum Datensatz so bennenst wie die ID des jeweiligen Datensatzes lautet. Den Rest erledigst du mit cfdirectory.

Die Vorteile liegen auf der Hand:

- Um die Bilder auch ohne CF zu betrachten reicht ein FTP-Download oder bei Remotezugriff ein kurzer Blick in die Verzeichnisse.
- Datensicherung ist auch kein Problem
- Die Performance ist sicherlich auch besser als bei der binärcode-Variante.

Ich nerve mich gerade darüber, dass ich vor Jahren so gedacht habe wie du und damals noch mit asp die Bilder in eine Access-Db geschrieben habe. Nun bekomme ich diese mit CF nicht mehr raus und muss einen Aufwand betreiben. Mit der "ID-Ordner" Variante würde ich jetzt einmal gähnen ;-)




>Hallo Claus,
>
>vielen Dank für die Antwort. Die Variante ist mir bekannt und ich verwende Sie auch (zwar mit PDFs statt mit Bildern, aber im Grunde das gleiche), aber es gibt einfach Anwendungen da ist das Ablegen eines Bildes (oder eines kleinen Logos, etc...) in der Datenbank besser (wg. Backup, etc....).
>Dass Memo ein begrenztes Zeichenfeld ist weiß ich und ich würde die Bilder gerne in einem OLE-Objekt Feld speichern, allerdings bezieht sich darauf auch genau meine erste Frage.
>Auch werde ich nicht mehr als ca. 50 Datensätze bekommen. Selbst Access sollte das speichern von 50 Bildern (jedes max. 100 KB) keine Schwierigkeiten machen.
>
>Für weitere Anregungen / Hilfen bin ich natürlich dankbar.
>
>Gruß
>Franz
>
>>Hallo,
>>
>>mach doch die erste Beschreibung vom Buch, setze einfach den Pfad in die Datenbank und das Bild in ein Verzeichnis (images) oder (Bilder) denke das geht viel besser, ein Verzeichnis packt locker 1000 Bilder.
>>Access ist dafür nicht gemacht Bilder zu speichern.
>>
>>Memo ist ein Zeichenfeld und packt 65000 Zeichen, wenn Bild abspeichern dann in OLE-Objekt Feld.
>>
>>Also Bilder im Verzeichnis speichern hast Du keinerlei nachteile so lange es nicht 10.000 und mehr sind, mit der cffile Anwendung kannst auch löschen umbenen usw.
>>
>>Gruß Claus
>>
>>
>>
>>
>>>Hallo,
>>>
>>>ich habe folgendes Problem. Per Upload Formular lade ich eine Grafik auf den Server, diese Grafik wird dann als Binärdatei eingelesen und die Datei anschließend vom Server wieder gelöscht. Das funktioniert soweit.
>>>Jetzt möchte ich die Grafik bzw. jetzt die Binärdaten in der Datenbank ablegen. In dem Buch von Herrn Goldfuss und Herrn Schmitz wird eine Variante beschrieben, die die Daten mit ToBase64() in einen String konvertiert und anschließend in der Datenbank als String speichert (in Access kommt hierfür nur ein Memo Feld in Frage). Das würde auch funktionieren, allerdings ist hier bei 48 KB Schluss. Möchte zwar keine großen Datenmengen in der Datenbank speichern (zwecks Performance), aber 80 - 100 KB sollten es schon sein (ca. 50 Datensätze).
>>>
>>>Dazu bräuchte ich jetzt in Access meiner Meinung nach den Feld Typen "OLE-Objekt". Aber jetzt bekomm ich da die Daten nicht rein. Bekomme die Fehlermeldung "Error Executing Database Query. / Unable to access parameter at index 1".
>>>
>>>Habe mich beim Code an ein Beispiel des Macromedia LiveDocs gehalten, aber das funktioniert leider nicht.
>>>
>>>Hier der Code:
>>>
>>>...
>>><CFSET pfad="d:\inetpub\webapp\data\temp\">
>>><CFFILE action="upload" fileField="form.grafik" destination="#pfad#" nameConflict="Overwrite" mode="777">
>>><CFFILE action="readBinary" file="#pfad##file.serverfile#" variable="Bild">
>>><CFFILE action="delete" file="#pfad##file.serverfile#">
>>>...
>>><cfif IsBinary(bild)>
>>> <CFSET bild64 = ToBase64(bild)>
>>> <CFQUERY name="qryUpdate" datasource="#odbc_dsn#" username="#databaseuser#" password="#databasepw#">
>>> UPDATE Tbl SET Bild = <CFQUERYPARAM VALUE="#bild#" CFSQLTYPE="CF_SQL_BLOB"> WHERE Tbl_ID = #Tbl_ID#
>>> </CFQUERY>
>


Bitte melden Sie sich kostenlos an, um eine Antwort auf diesen Beitrag zu erstellen.


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen