In Delphi 7, Wie entkommen ich ein Prozentzeichen (%) in der Format-Funktion?
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+'%']);
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