PostgreSQL-Datensatz und Sonderzeichen ...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: PostgreSQL-Datensatz und Sonderzeichen ...

Beitrag von HeX0R »

O.k., ich habe gelogen...
Ich ersetze alle Backslashes in Slashes um mit Linux kompatibel zu bleiben.
Also bin ich ohne es zu merken um dieses Problem herumgeschifft.

Das kannst du übrigens auch machen, Windows kommt auch mit Slashes klar.

Dann müsstest du nur noch die einfachen Hochkommatas wie von Kiffi beschrieben verdoppeln.
(Ich fürchte, das hätte ich auch machen sollen, ich habe wohl keinen Pfad mit Hochkommatas bei meinen PB-Sourcen)
Das sollte es dann gewesen sein.
hschmidt
Beiträge: 11
Registriert: 09.11.2006 16:15

Re: PostgreSQL-Datensatz und Sonderzeichen ...

Beitrag von hschmidt »

@Kiffi: Danke für den Tipp! Muss ich unter SQLite dringend beachten.

@HeX0R: Backslash in Slash wandeln ist sinnvoll, bei mir jedoch nicht notwendig, da ich mir die Dateinamen per OpenFileRequester hole und somit immer die Betriebssystem-typische Namensgebung vorfinde (C:\Dokumente und Einstellungen\horst\ gehen /home/horst).

Ich kann momentan zusammenfassen:
  • - unter SQLite muss ' verdoppeln werden
    myFilename = ReplaceString(myFilename, "'", "''")

    - unter PostgreSQL muss den Zeichen \ und ' ein \ vorgesetzt werden.
    (bei ' geht auch die Verdoppelung).
    myFilename = ReplaceString(myFilename, "\", "\\")
    myFilename = ReplaceString(myFilename, "'", "\'") oder
    myFilename = ReplaceString(myFilename, "'", "''")
Dann funktioniert es bei mir. Ich habe auch diverse Dateinamen aus anderen Sprachräumen getestet.
Wenn ich mir sicher sein könnte, dass nur diese beiden Zeichen beachtet werden müssen, kann ich damit leben.
Doch wo könnte noch eine Stolperfalle sein? Was meint Ihr?

Danke an alle!
Horst
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: PostgreSQL-Datensatz und Sonderzeichen ...

Beitrag von HeX0R »

Theoretisch nirgends.

Es ist nunmal so, dass der Backslash zum escapen benutzt wird und das Singlequote den Anfang und das Ende eines Strings angibt.
Das sollten die einzigen "gefährlichen Zeichen" sein.
Antworten