Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sonderzeichen ' (Hochkomma) in SQL-String - wie geht's???

3,126 views
Skip to first unread message

Jörg Schrickel

unread,
Sep 29, 1999, 3:00:00 AM9/29/99
to
Hi!
 
Unter ASP möchte ich in eine Access-Tabelle schreiben und baue dafür einen SQL-String auf:
 
    strsql="INSERT INTO tblcomm (Feld_1,Feld_2)" & " VALUES ('" & var1 & "','" & var2  & "');"
 
Anschließend führe ich das Kommando mit
 
    conn.execute strsql
 
aus. Wenn jetzt jedoch var1 oder var2 ein ' (Hochkomma) enthalten, wie z.B. in "wie geht's", kommt die Fehlermeldung:
 
    Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e14'
    [Microsoft][ODBC Microsoft Access 97 -Treiber] Syntaxfehler (fehlender Operator) in Abfrageausdruck ''wie geht's ');'.
    /ab-online/_private/artcomminputproc.inc, Zeile 44
 
Klar: Das in "wie geht's" enthaltene ' wird als Separator interpretiert - und genau das muss ich verhindern, aber wie???
 
Die Eingaben in var1 und var2 erfolgen durch den Benutzer, so dass ich auf jeden Fall auch Zeichen wie ' zulassen muss. Ein REPLACE kommt also nicht in Frage.
 
Was ist zu tun???
 
Danke für Eure Hilfe
 
Jörg

Olaf Stieleke

unread,
Sep 29, 1999, 3:00:00 AM9/29/99
to
Primär kann man sowohl INSERT INTO bla (x,y) VALUES ('x','y') schreiben.
Es geht aber auch INSERT INTO bla (x,y) VALUES ("x","y").

Wenn aber sowohl einfache wie doppelte Hochkommata auftreten, steht der
SQL-Server vor einem Problem.

Olaf

Jörg Schrickel <joergsc...@gmx.de> schrieb in im Newsbeitrag:
7ssoi5$37u$1...@news07.btx.dtag.de...

Marcus Reimann

unread,
Sep 29, 1999, 3:00:00 AM9/29/99
to
Hallo,

Du musst alle Hochkommata in den Variablen var1 und var2 durch ein zweites
Hockomma ergänzen.
Dann kannst Du sowohl nach Texten wie 'O'Brien' als auch 'O"Brien' suchen.

Microsoft bietet zu diesem Problem einen gute Lösung unter folgender URL an:
http://support.microsoft.com/support/kb/articles/q178/0/70.asp

Gruss
Marcus Reimann

0 new messages