またADOについて教えて下さい

解決


初心者  2002-05-13 11:34:50  No: 866  IP: [192.*.*.*]

LIKEで検索しようと思うのですが、どうしてもできません。
(部分検索)よろしくお願いします。下記のロジックでは
どうも上手くいきません


ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.TEXT:='SELECT * FROM マスタ WHERE コード LIKE  '%''+Rightedit1.Text+''%'';
          ADOQuery1.Open;

編集 削除
にしの  2002-05-13 22:12:08  No: 867  IP: [192.*.*.*]

%を*に置き換えても駄目ですか?
JETの場合は、*になるらしいです。
_は?になるらしいです。

編集 削除
初心者  2002-05-14 09:46:28  No: 868  IP: [192.*.*.*]

例に沿って、やってみたのですが上手くいきません。
%を※変えただけですけど下記のエラーメッセージが表示されます
宜しくお願いします

[エラー] Uyomiurimst.pas(92): この型には指定した演算子は使えません

編集 削除
にしの  2002-05-14 12:16:57  No: 869  IP: [192.*.*.*]


エラーになるとしたら、SQLのエラーですが・・・。
僕が言った修正は、Delphiではありません。
SQL文のほうです。

ADOQuery1.SQL.TEXT:='SELECT * FROM マスタ WHERE コード LIKE  '%''+Rightedit1.Text+''%'';

これをよく見たら、Delphiの文字列の表記が間違っていますね。
正解は、

ADOQuery1.SQL.TEXT:='SELECT * FROM マスタ WHERE コード LIKE  ''%'+Rightedit1.Text+'%''';
です。
シングルコーテーションがわかりにくいのであれば、
ADOQuery1.SQL.TEXT:='SELECT * FROM マスタ WHERE コード LIKE  "%'+Rightedit1.Text+'%"';
としたほうがいいと思います。
# ダブルコーテーションを許さないDBならしかたありませんが

編集 削除
初心者  2002-05-14 13:32:02  No: 870  IP: [192.*.*.*]

大変ご迷惑をかけました。
ようやく解決する事ができました。
今後ともよろしくお願いします

編集 削除