Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   binärdatei in datenbank speichern (https://www.delphipraxis.net/33326-binaerdatei-datenbank-speichern.html)

gekmihesg 4. Nov 2004 21:02


binärdatei in datenbank speichern
 
hallo. ich möchte eine binärdatei in einer mysql-datenbank speichern.
die datei soll in ein blob feld.
das problem ist aber das in meiner anfrage syntaxfehler auftreten wenn diese binärdatei ein ' enthält.
hier die anfrage:

Delphi-Quellcode:
'INSERT INTO dateien(`name`,`datei`) VALUES(''' + filename + ''',''' + datei + ''')'
wenn dann datei z.b. #+&§=NV203'qcvc8qnv6 ist gibts nen syntax-error.
wie kann ich diesen fehler vermeiden?

fiasko 4. Nov 2004 22:13

Re: binärdatei in datenbank speichern
 
Hallo,

normalerweise gibt es extra Funktionen um BLOBs in eine DB zu bekommen, aber MySQL scheint das nicht zu geben... und sowas nennt sich Datenbank. Auf der Manual Seite wird von einem User vorgeschlagen die Daten base64 codieren (base64_encode/base64_decode) - auch wenn das BLOBs eigentlich ad ab surdum führt ist das wohl z.Zt. die einzige Möglichkeit.

theomega 4. Nov 2004 22:49

Re: binärdatei in datenbank speichern
 
das ist keine fehlende MySQL-Funktion sondern die funktion muß in der Programmiersprache existieren. Die MySQL-Api stellt sie nämlich zur verfügung. Unter PHP verwendet man am besten addslashes(); es wird sicher irgendwo eine Delphi-Überstzung geben

alcaeus 4. Nov 2004 22:49

Re: binärdatei in datenbank speichern
 
Hi Markus,

es ist eigentlich eine endlose Sache. Du kannst das Query so
Delphi-Quellcode:
'INSERT INTO dateien(`name`,`datei`) VALUES(''' + filename + ''',''' + datei + ''')'
oder so
Delphi-Quellcode:
'INSERT INTO dateien(`name`,`datei`) VALUES("' + filename + '","' + datei + '")'
hinzufügen.
Im ersten Fall musst du jedes ' durch \' ersetzen, im zweiten Fall jedes " mit \". Dazu kannst du z.B. Delphi-Referenz durchsuchenStringReplace verwenden.

Greetz
alcaeus

gekmihesg 5. Nov 2004 11:56

Re: binärdatei in datenbank speichern
 
ja auf die lösung war ich auch schon gekommen aber ich dachte das das so umständlich is das es da doch eigendlich was anderes geben muss... (ich hätte halt aucch gran gehabt das ich die datei dann genau so wie sie is in der datenbank hab ohne dran rum zu ändern)

dann mach ichs halt jetzt mal so...


edit:
habs grad probiert und es hilft leider nix. der findet dann einfach wo anders nen fehler wo zwar kein solches zeichen vorkommt aber trotzdem irdgendwas nicht passt.

clues1 5. Nov 2004 12:06

Re: binärdatei in datenbank speichern
 
Wie sprichst du die Datenbank an? ADO, DAO, Direct MySQL, ODBC, OLEDB, ....?

In ADO nennt sich das ADODB.Stream. Bei den andere weis ich das leider nicht.
Über einen SQL String kannst du keine BinärDaten speichern. Da diese Daten umgewandelt werden in ZB String. Also zusätzliche Funktionen nutzen.

gekmihesg 5. Nov 2004 12:11

Re: binärdatei in datenbank speichern
 
steht oben ;) mysql

ich mach das ganze übrigens in php. ich hab mir nur gedacht da das hier ja eigendlich ein delphiforum is kann ich das query ja mal im delphi style posten ;)

teebee 5. Nov 2004 13:10

Re: binärdatei in datenbank speichern
 
Schau Dir mal das hier an: mysql_real _escape_string

Gruß, teebee

clues1 5. Nov 2004 13:23

Re: binärdatei in datenbank speichern
 
MySQL ist die Datenbank, und nicht die Schnittstelle die du nutzt um MySQL abzufragen. Die Schnittstelle die du nutzt ist also PHP? Dann bist du hier im falschem Forum. Sorry.

alcaeus 5. Nov 2004 13:25

Re: binärdatei in datenbank speichern
 
Hi Markus,

poste mal wie du das Query in php zuweist. Und das gehört jetzt wohl eher nach Programmieren Allgemein.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.
Seite 1 von 2  1 2      

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