Wie setze ich einen sql-query-parameter in Delphi, beinhaltet ein '@'
Ich bin der Abfrage einer Datenbank mithilfe einer E-Mail-Adresse. Die Adresse ist wie fred.o'[email protected]
In Delphi, das aussieht wie 'fred.o"[email protected]' als Apostroph maskiert natürlich.
Sagen wir mal die Abfrage
'select * from table where (email = ''%s'')'
nun, wenn ich nur ersetzen Sie %s schlägt die Abfrage fehl, wie es scheint, um den Wert als 2 strings 'fred.o' und '[email protected]'. d.h. es nicht erkennen, zu entkommen.
wenn die Abfrage
'select * from table where email = :email'
und die parameter auf die E-Mail-Adresse funktioniert es, wenn es kein Apostroph, aber nicht mit den Daten, wenn Sie die E-Mail-Adresse enthält eine
[bearbeitet zu löschen, falsche Daten]
Irgendwelche Vorschläge?
Welche Datenbank?
Die Datenbank ist FireBird 2.5.2
Was passiert mit einer E-Mail-Adresse nicht mit einem Apostroph? So etwas wie [email protected]?
über eine E-Mail ohne den Apostroph-Fehler bei der Verwendung QuoteStr für die Einstellung eines Parameters, wie es ist "[email protected]" nicht [email protected]
stackoverflow.com/questions/17042344/...
Die Datenbank ist FireBird 2.5.2
Was passiert mit einer E-Mail-Adresse nicht mit einem Apostroph? So etwas wie [email protected]?
über eine E-Mail ohne den Apostroph-Fehler bei der Verwendung QuoteStr für die Einstellung eines Parameters, wie es ist "[email protected]" nicht [email protected]
stackoverflow.com/questions/17042344/...
InformationsquelleAutor Russell Weetch | 2013-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bei Verwendung von Parametern, fügen Sie nicht die Anführungszeichen oder Flucht nichts selber.
Sollte dies funktionieren:
Wenn es nicht wieder etwas, überprüfen Sie die tatsächlichen Werte, die in der Datenbank gespeichert sind. Es wurde nicht ordnungsgemäß geschützt, wenn es eingefügt wurde.
Ich bearbeitet meine Antwort und explizit den Datentyp für den parameter aus. Es ist die einzige andere Sache, die ich denken konnte.
+1. Nur um absolut sicher zu sein, würde ich hinzufügen
ParamCheck := True
(standardmäßig True)InformationsquelleAutor Marcus Adams