- PR -

OdbcConnectionのLIKE検索で使用するESCAPE処理について

1
投稿者投稿内容
とら
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 54
投稿日時: 2008-06-26 11:38
VisualStudio2005で、OdbcConnectionを使用してAccess2000のデータを
参照するプログラムの開発を行っています。

Select文でLike検索を行うときに、OracleConnectionやSqlConnectionの
場合は、以下のようにエスケープ文字を指定すると思います。

myOracleCommand.CommandText =
"Select Count(*) From Table01 Where Fld01 LIKE :FLD01 ESCAPE '¥¥'";

OracleParameter p = myOracleCommand.Parameters.Add("FLD01", OracleDbType.Varchar2);
p.Value = "%" + v_SyouhinMei.Replace("¥¥","¥¥¥¥").Replace("_","¥¥_").Replace("%","¥¥%") + "%";
(バックスラッシュに変換されるようなので¥を倍角にして有ります)

しかし、前述のOdbcConnectionを使用してAccess2000に接続する場合に、
ESCAPEを指定すると

ERROR [42000] [Microsoft][ODBC Microsoft Access Driver]
構文エラー : 演算子がありません。

のような例外が発生してしまいます。

ESCAPE指定を行わない場合は「_」が任意の1文字と解釈されたりするので
出来ればSQL上でESCAPE処理を行いたいのですが、方法が判りません。

もしかすると、暗黙的にESCAPE文字が指定されているとかがあるのでしょうか?

何かこの件に関する情報をお持ちの型がいらっしゃいましたら、
宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)