Frage

Ich möchte etwas tun:

SQL.Text := Format('select foo from bar where baz like ''%s%''',[SearchTerm]);

Aber Format nicht wie das letzte ‚%‘, natürlich. Also, wie kann ich sie entkommen? \%? %%?

Oder muss ich dies tun:

SQL.Text := Format('select foo from bar where baz like ''%s''',[SearchTerm+'%']);

War es hilfreich?

Lösung

Verwenden Sie ein anderes% im Format-String:

SQL.Text := Format('select foo from bar where baz like ''%s%%''',[SearchTerm]);

Andere Tipps

%%, IIRC.

Obligatorisch: http://xkcd.com/327/ : -)

Je nach Kontext, Ihr Ansatz könnte eine SQL-Injection anfällig sein. Wenn der Suchbegriff aus Benutzereingaben kommt wäre es wahrscheinlich besser, eine parametrisierte Abfrage zu verwenden oder zumindest versuchen, den Eingang zu sanieren.

In 2 Prozentzeichen 1 Einzel%
haben Beispiel:

 Format('select foo from bar where baz like ''%%%s%%'',[SearchString])

Gibt Ihnen

select foo from bar where baz like '%SearchString%'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top