Entwickler-Ecke
Datenbanken - MySQL DB will keine '\' annehmen
derDoc - So 28.03.04 17:05
Titel: MySQL DB will keine '\' annehmen
Ich habe hier ein sehr komisches Problem.
Eines meiner Programme benutzt die ZeosLibs, um in eine MySQL DB Daten einzutragen. Darunter sind auch Dateipfade in der Art 'X:\Dateien\MeineDatei.xyz', die als Strings eingetragen werden sollen. Wenn ich diese nun mit INSERT in die DB eintrage verschwinden die '\' und es steht in der DB 'X:DateienMeineDatei.xyz'.
Hat jemand damit schon Erfahrungen gesammelt oder eine Lösung?
Delete - So 28.03.04 18:19
Hi,
das Problem sollte behoben sein, wenn du die Backslashes escapest, also
X:\\Dateien\\MeineDatei.xyz
an die Datenbank übergibst.
neojones - Mo 29.03.04 14:22
Alternativ: mySQL nimmt auch nen normales Slash / an.
Masada - Do 15.09.05 21:14
Moin zusammen,
ich habe das gleiche Problem unter etwas anderes Vorraussetzungen und hoffe, den Thread hierfür "mißbrauchen" zu dürfen:
Ich möchte ebenso einen Pfad in der Form "c:\test.jpg" speichern.
Der Backslash geht beim Speichern immer verloren, nur leider passiert das sowohl beim normalen slash ("/") also auch wenn ich zwei backslashe ("\\") verwende.
Ich habe gelesen, dass das mit UTF-8 Codierung funktionieren soll. Diese wird AFAIK erst bei MySQL 4.1 unterstützt. Ich muss jedoch zwingend MySQL 4.0 einsetzen, da dort viel mehr als nur das kleine Programm, an dem ich rumbastel drauf laufen. Die Codierung ist aktuell "latin1".
Ich weiss wirklich nicht weiter und google ist nicht mehr mein Freund :? .
Ich setze ein: MySQL 4.0.16, Delphi 7 pro und mysql.pas (von
http://www.fichtner.net/delphi/mysql.delphi.phtml ).
Vielen Dank für etwaige Hilfe.
Gruß
Masada
zemy - Fr 16.09.05 11:21
Gnz dumme Idee: wie währe es, wenn man bei Pfaden die "\" durch ein anderes Symbol ersetzt? Müsste dann eins sein, was in normalen Pfaden nicht vorkommt, wie |, :, *, ? usw. Beim auslesen müsste man dann rückersetzen...
Masada - Fr 16.09.05 11:46
Die Idee ist mir heute beim Frühstück auch gekommen als workaround.
Trotzdem intressiert es mich, ob man es auch "sauber" lösen kann. Ansonsten werde ich das wohl so machen...
Nikola - Di 20.09.05 15:12
Hallo, hatte auch das Problem und so habe ich es gelöst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| function Wandler(Text:String;Zeichen:Char):String; var Ch : String; SEnd : String; Position : Byte; WortLaenge : Byte; begin while Pos(Zeichen, Text) > 0 do begin Text[Pos(Zeichen, Text)]:= '¥'; end; while Pos('¥', Text) > 0 do begin Position:=Pos('¥', Text); Ch:=Copy(Text,1,Position); WortLaenge:=Length(Text); SEnd:=Copy(Text,Position+1,WortLaenge); Text[Pos('¥', Text)]:= Zeichen; Text:=Concat(Ch, Zeichen); Delete(Text,Position,1); Text:=Concat(Text, Zeichen+SEnd); end; result:=Text; end;
Artikel.Artikel_Bild:=Wandler(Artikel.Artikel_Bild,'\'); |
mfg. Nikola
Nikola - Di 20.09.05 15:15
Hallo, hatte auch das Problem und so habe ich es gelöst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| function Wandler(Text:String;Zeichen:Char):String; var Ch : String; SEnd : String; Position : Byte; WortLaenge : Byte; begin while Pos(Zeichen, Text) > 0 do begin Text[Pos(Zeichen, Text)]:= '¥'; end; while Pos('¥', Text) > 0 do begin Position:=Pos('¥', Text); Ch:=Copy(Text,1,Position); WortLaenge:=Length(Text); SEnd:=Copy(Text,Position+1,WortLaenge); Text[Pos('¥', Text)]:= Zeichen; Text:=Concat(Ch, Zeichen); Delete(Text,Position,1); Text:=Concat(Text, Zeichen+SEnd); end; result:=Text; end;
Artikel.Artikel_Bild:=Wandler(Artikel.Artikel_Bild,'\'); |
mfg. Nikola
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!