VB6 / MSSQL7 / Textbegrenzer

Hallo zusammen

Ich baue mir in VB einen SQL-String zusammen, den ich dann mit Execute ausführen möchte.

Leider gibt es eine Fehlermeldung, wenn der User im Textfeld das Hochkomma benutzt, weil dieses ja als String-Begrenzer verwendet wird.

Gib es noch andere gültige Textbegrenzer?

Danke und Gruss
Martin

Frage
Hallo Martin,

meinst du, wenn du das Hochkomma bzw. den String an eine
Variable übergibst oder wenn du den String an den Server sendest?

Gruss
Alessandro

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Allessandro

meinst du, wenn du das Hochkomma bzw. den String an eine
Variable übergibst oder wenn du den String an den Server
sendest?

Ich baue einen SQL-String auf …

cSQL ="UPDATE Test SET Bezeichnung ='" & me.txtBez & "' WHERE ..."

Wenn nun im me.txtBez bereits ein Hochkomma enthalten ist, dann gibt es natürlich eine Fehlermeldung.

Gruss
Martin

Ja, klar
Hallo Martin,

tja, da hast du recht.
Wir fallen da im Moment nur zwei (bzw. drei) Möglichkeiten
ein das zu umgehen.

  1. die Unschöne,
    den Übergabestring Characterweise auszulesen
    und die entsprechenden Hochkommas herauszulöschen.
  2. die Schöne
    die Replace-Funktion
    Replace(String, Suchzeichen, ersetzenzeichen,startwert,anzahl,vergleicher)
    die letzten drei Angaben sind optional.
    3.die Einschränkende
    die Werte die eingegeben werden können vorzugeben,
    beispielsweise in einer Combobox.

Ich hoffe es hilft dir.

Gruss
Alessandro

Ich mache das mit der Replace-Methode:
wenn man reservierte Zeichen verwenden möchte schreibt man ganz allgemein zwei von denen hintereinander (zB. %% in cmd-Dateien und „“ in Strings) - also auch bei SQL-Befehlen
Erstetz einfach innerhalb des FeldWertes ’ durch ‚‘ - zB. mit:
Replace(strFieldValue, „’“, „’’“)
Das kannst du aber leider nicht mit dem ganzen SQL-Befehl machen weil sonst die String-Trennzeichen verloren gehen - also nur mit den eigentlichen String-Werten!!! Bei mir macht das eine Funktion die TextBox-Inhalte in ein SQL-Statement einfügt

~luki

Hallo Allessandro

Ich habe mich für die 2. Variante entschieden und mit Hilfe von Replace das evt. vorhandene Hochkomma mit einem 2. ergänzt. So funktioniert es.

Danke und Gruss
Martin

Hallo Luki

Danke für Deine Antwort. Habe es nun genauso gemacht und es funktioniert.

Gibt es denn noch andere „gefährliche“ Zeichen?

Gruss
Martin