Seite 1 von 3

String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 19:41
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?

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 19:49
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?

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 19:53
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

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 19:57
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:

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 20:04
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.

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 20:07
von RSBasic
Poste doch bitte ein Beispiel-SQL-String, um sehen zu können, woran es wirklich liegt.

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 20:11
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$)

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 20:12
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.

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 20:18
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$ + "')

Re: String mit Anführungzeichen in Datenbank schreiben

Verfasst: 20.11.2013 20:26
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$, "'", "\'")