0

特殊文字を含む Sql クエリを実行したいと考えています。ただし、SQL パラメーターは使用したくありません。次のクエリを実行する方法はありますか?

SqlString := 'Select * from Table1 where Name LIKE '`1234567890-=\]['';/.,<>?:"{}|+_)(*&^%$#@!~%'
FSQLQuery.SQL.Clear;
FSQLQuery.SQL.Add( SqlString );
FSQLQuery.Open;

Delphi は、'`1234567890-=]['';/.,<>? のコロン記号のために、このクエリをパラメータ化されていると見なします。: "{}|+_)(*&^%$#@!~%' および throws (パラメーター '{}|+_ の値なし)(*&^%$#@!~%')。

4

3 に答える 3

1

次のようなものを配置する必要があります。

sqlString := 'SELECT * FROM   Table1 WHERE  Name LIKE ''`1234567890-=\]['''';/.,<>?:"{}|+_)(*&^%$#@!~%'' ';
FSQLQuery.ParamCheck := False; //<<It MUST be prior than SetSql.
FSQLQuery.SQL.Clear;
FSQLQuery.SQL.Add( sqlString );
FSQLQuery.Open;
于 2013-06-11T11:58:04.557 に答える
0

SQL 内のエスケープされた文字にも注意してください。 QuotedStr 関数で解決して正常に動作させることができます。

sqlString := 'SELECT * FROM   Table1 WHERE  Name LIKE ' +
             QuotedStr('`1234567890-=\]['''';/.,<>?:"{}|+_)(*&^%$#@!~%'' ) + ';';
于 2013-06-15T22:43:11.300 に答える