String für die Abfrage in TQry escapen & Bei Query groß und kleinschreibung ignorieren



  • Hallo, Frage 1:
    Ich habe ein Textfeld wo der User etwas eingibt, beispiel "Test'scher Test"
    Dann bekomme ich bei der SQL abfrage einen Fehler, weil das ' ja nicht escaped wird.
    Gibt es dafür eine Funktion?
    Wie lautet diese?

    Frage 2:

    Wenn ich in einem Query
    WHERE feldname = '"+Edit->Text+"' stehen habe, dann will ich, dass er alles findet, unabhängig von der Groß und Kleinschreibung.
    Kann ich das irgendwo einstellen?

    Ich benutze (für beide Fragen) den BCB6, Paradox 7 Tabellen und ein TQuery zum Abfragen.



  • 1. BCB-Funktion: QuotedStr();

    2. SQL-Funktion: lower() (abhänigig vom DBMS)



  • zu 1:
    Du solltest dann mit Parametern arbeiten: s. TQuery::Params

    zu 2: Probier mal

    "WHERE UPPER(feldname) = UPPER('" + Edit->Text + "')"
    

    UPPER bzw. LOWER gehören zum SQL-Standard



  • zu 1) Wie genau meinst du das?
    Geht das auch so:

    qry->SQL->Add("SELECT * FROM tabelle WHERE LOWER(feld) = LOWER(?)", inhalt);

    Zu 2)
    Habe ich nicht gewusst, ich habe bisher nur PHP genutzt, da gabs keine Probleme.
    Ich hatte da Problem mal in RoR mit Sybase, aber da konnten mir keine 3 Programmierer helfen, obwohl Sie studiert haben, und damit seit Jahren arbeiten...



  • Achja, das QuotedStr funktioniert bei mir nicht, die " werden nicht in \" verwandelt, und so.


Anmelden zum Antworten