引数文字列が適切にエスケープされるように、LIKE 演算子パターン内で名前付きパラメーター プレースホルダーを使用したかったのです。
at-param プレースホルダーを使用している変更後のコードは次のとおりです。
var stmt = 新しい air.SQLStatement();
stmt.text = "SELECT * FROM コメント WHERE タイトル LIKE '%@search%';";
stmt.parameters["@search"] = "引数文字列";
stmt.execute();
これを行うと、次の詳細を含む SQLError が生成されます
メッセージ: エラー #3315: SQL エラー。
詳細: '@search' パラメーター名がパラメーター プロパティに見つかりましたが、指定された SQL にはありません
マイク・ペティが提案したように、私は試しました:
stmt.text = 'SELECT * FROM コメント WHERE タイトル LIKE "@%search%";';
これにより、同じ SQL エラーの詳細が得られます。
ドキュメントにはこれがあります:
expr ::= (列名 | expr) LIKE パターン
パターン ::= '[ 文字列 | % | _ ]'
私の疑いは、qoutesのためにスキップされているということですが、それを機能させる方法についてのアイデアはありますか?