Kategorie: Datenbankzugriffe
Frage: Wie kann ich ein Apostroph ' in ein SQL-Statement einbauen?
Um ein Hochkomma ' oder ein Anführungszeichen in ein SQL-Statement einzubauen, muss
das jeweilige Zeichen doppelt angegeben werden.

<%
SQL = "SELECT * FROM <tabelle> WHERE <feld> = 'test'"
' --- findet alle Sätze mit dem Wert test

SQL = "SELECT * FROM <tabelle> WHERE <feld> = ''test''"
' --- findet alle Sätze mit dem Wert 'test'

SQL = "SELECT * FROM <tabelle> WHERE <feld> = ""test"""
' --- findet alle Sätze mit dem Wert "test"
%>



Da der betreffende Text meistens in Variablen gespeichert wird, muss man entsprechend
den Inhalt der Variable ändern. Dafür stellt VBScript die Funktion Replace zur Verfügung.

Nachfolgend die Syntax bei Verwendung der Funktion Replace (Hochkomma):
<variable> = Replace(<variable>, "'", "''")

Nachfolgend die Syntax bei Verwendung der Funktion Replace (Anführungszeichen):
<variable> = Replace(<variable>, """", """""")
Dieser Funktionsaufruf ersetzt alle " in "" (dass die Zeichen im Funktionsaufruf doppelt, also
als "" und """" angegeben wurden, irritiert zwar etwas, ist aber korrekt)

Nachfolgend noch ein Beispiel eines SQL-Strings mit einer Variable


<%
...

Dim <variable>
    <variable> = "Hallo Welt. Ein ' verursacht Fehler"
    SQL = "SELECT * FROM <tabelle> WHERE <feld> = <variable>"

...
%>
Wenn Sie dieses SQL-Statement ausführen, wird eine Fehlermeldung ausgegeben.

<%
...

Dim <variable>
    <variable> = "Hallo Welt. Ein ' verursacht Fehler"
    <variable> = Replace(<variable>, "'", "''")
    SQL = "SELECT * FROM <tabelle> WHERE <feld> = <variable>"

...
%>
Dieses SQL-Statement wird korrekt ausgeführt.

Copyright 2000 - 2021 by Stefan Falz Webconsulting