Nina: Text mit Anführungszeichen in DB bekommen?!?!

Hallo!

In einem ASP-Skript bastle ich ein SQL-Insert-Statement zusammen:

insert into TABLE (TEXT) values ('Eingabetext')

Der Wert von 'Eingabetext' stammt aus einem Formular, wo der User selbstverständlich auch ' und " verwenden kann.

Problem:
Ein ' beendet den String in SQL, ein " in ASP (wo ich ja den SQL-String u.a. aus Variablen zusammensetze).

Gibt es eine Möglichkeit wie etwa " oder so, damit die Zeichen sozusagen ihre Wirkung verlieren.

Danke
Nina

  1. Hi,

    wenn nix hilft, dann mach die nette Recordset-Variante, mach ich bei solchen Inserts meistens:
    Dim rs
    Set rs = Server.CreateObject("ADODB.RECORDSET")

    Bei so einem Recordset (irgendwie kann man das auf einer Tabelle öffnen, hab leider die Syntax gerade nicht parat) gibt es dann ein
    rs.edit
    rs.fields("feld") = var1
    rs.fields("feld2") = var2
    rs.update

    MfG
    Rouven

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Hoi Nina

    leidige Sache, hab mir auch schon mal die Zähne ausgebissen. Meine Lösung: ich ersetze die Zeichen durch HTMl-Bezeichnungen, habe dafür eine kleine Funktion geschrieben:

    function replapo(apoStr)
       replapo = replace(apoStr,chr(39),"&#39;")
    end function

    Der Wert wird dann aus dem Formular gelesen und in einer Variable gespeichert, wobei die Funktion verwendet wird:

    CustomerName = replapo(Request.Form("CustomerName"))

    und danach das sql-statement:

    sql = "UPDATE LagCustomer SET CustomerName = '" & CustomerName & "'"
    Conn.Execute sql

    Damit hast du die ' in deinem Wert eliminiert. die " sollten stellen dann eigentlich kein Problem mehr dar da im sql-statement der ganze Wert dann zwischen ' steht.

    Der Nachteil dieser Methode: Der Wert enthält dann in der Datenbank nicht mehr das richtige '-Zeichen sondern &#39;. solange man den Wert wieder als HTML wieder ausgibt stellt das kein Problem dar. Will man jedoch den Wert irgendwo sonst weiter verwenden müsste dann mit einer entsprechenden Funktion das ganze wieder zurückverwandelt werden.

    Lieb Grüsse  //trukli58

    Hallo!

    In einem ASP-Skript bastle ich ein SQL-Insert-Statement zusammen:

    insert into TABLE (TEXT) values ('Eingabetext')

    Der Wert von 'Eingabetext' stammt aus einem Formular, wo der User selbstverständlich auch ' und " verwenden kann.

    Problem:
    Ein ' beendet den String in SQL, ein " in ASP (wo ich ja den SQL-String u.a. aus Variablen zusammensetze).

    Gibt es eine Möglichkeit wie etwa " oder so, damit die Zeichen sozusagen ihre Wirkung verlieren.

    Danke
    Nina

    1. Hi einfach die single quotes durch double quotes ersetzen durch also ' zu '' und beim Auslesen umgekehrt.

      das funzt