String mit Anführungzeichen in Datenbank schreiben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Micky91
Beiträge: 35
Registriert: 06.11.2013 19:35

String mit Anführungzeichen in Datenbank schreiben

Beitrag von Micky91 »

Ich bekomme aus einer XML-Datei eine String der auch Anführungszeichen enthält.
Dieser wird in eine Variable (text$) geschrieben
Wie kann ich den denn jetzt in die Datenbank schreiben?

Code: Alles auswählen

DatabaseUpdate(0, "INSERT INTO Tabelle " + text$)
schlägt ja fehl, weil in der Variable text$ auch Anführungzeichen sind.
Gibt es einen Befehl der den String maskiert?
PureBasic 5.72 (x64) | Mac OSX 10.15.6
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von RSBasic »

Wie sieht denn der Inhalt von text$ aus? Kannst du den vollständigen SQL-String posten?
Ansonsten kannst du auch folgendes nutzen:

Code: Alles auswählen

DatabaseUpdate(0, "INSERT INTO Tabelle " + ReplaceString(text$, Chr(34), "'"))
Oder sind die Anführungszeichen am Anfang und Ende vorhanden?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Micky91
Beiträge: 35
Registriert: 06.11.2013 19:35

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von Micky91 »

Damit eliminiere ich aber die Anführungszeichen und schreibe sie nicht in die Datenbank!?

In text$ könnte stehen: Bla bla "Blubb" blah
PureBasic 5.72 (x64) | Mac OSX 10.15.6
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von ts-soft »

Code: Alles auswählen

Define.s myString = "Bla bla " + #DQUOTE$ + "Blubb" + #DQUOTE$ + "blah"
Debug myString
Jetzt nur noch myString in die DB schreiben, sollte funktionieren :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Micky91
Beiträge: 35
Registriert: 06.11.2013 19:35

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von Micky91 »

@ts-soft: Wie gesagt, den String erstelle ich nicht selbst, sonder der kommt aus einer XML-Datei.
@RS Basic: Das mag der Replacestring leider nicht.
PureBasic 5.72 (x64) | Mac OSX 10.15.6
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von RSBasic »

Poste doch bitte ein Beispiel-SQL-String, um sehen zu können, woran es wirklich liegt.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Micky91
Beiträge: 35
Registriert: 06.11.2013 19:35

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von Micky91 »

Äh, hab ich das nicht getan?

String der aus der XML-Datei kommt: Blah Blah "Blubb" Blah
wird in text$ gespeichert.

Code: Alles auswählen

DatabaseUpdate(0, "INSERT INTO Tabelle " + text$)
PureBasic 5.72 (x64) | Mac OSX 10.15.6
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von Derren »

Anführungszeichen im String sind kein Problem.

Das Problem ist dass in deiner XML-Datei wahrscheinlich kein gültiger SQL query steht.

"INSERT INTO Tabelle hallo welt" - Totaler Murks.
Steht in deiner XML folgendes?

Code: Alles auswählen

(spalte1, spalte2) VALUES ('wert1', 'wert2')
Wenn nicht, dann ist das dein Problem.


Deswegen sollst du ja mal den Inhalt von text$ posten. Kannst ja "zensieren", falls da irgendwas drinsteht was du hier nicht posten möchtest.
Signatur und so
Benutzeravatar
Micky91
Beiträge: 35
Registriert: 06.11.2013 19:35

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von Micky91 »

Ach du Sch* das hab ich ja gar nicht gesehen.
:oops:

Sorry für eure vergebliche bisherige Mühe!

Es lautet natürlich:

Code: Alles auswählen

INSERT INTO Tabelle (spalte1) VALUES ('" + text$ + "')
PureBasic 5.72 (x64) | Mac OSX 10.15.6
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: String mit Anführungzeichen in Datenbank schreiben

Beitrag von Derren »

Kannst du bitte mal lauffähigen Code posten? Mit dem Databasezeugs hab ich mich in PB noch nie beschäftigt.
Ich seh nicht warum Anführungszeichen ein Problem sein sollten... Es sei denn es sind "single quotes", also '
Dann musst du sie einfach escapen mit

Code: Alles auswählen

ReplaceString(text$, "'", "\'")
Signatur und so
Antworten