LIKEで検索しようと思うのですが、どうしてもできません。
(部分検索)よろしくお願いします。下記のロジックでは
どうも上手くいきません
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.TEXT:='SELECT * FROM マスタ WHERE コード LIKE '%''+Rightedit1.Text+''%'';
ADOQuery1.Open;
%を*に置き換えても駄目ですか?
JETの場合は、*になるらしいです。
_は?になるらしいです。
例に沿って、やってみたのですが上手くいきません。
%を※変えただけですけど下記のエラーメッセージが表示されます
宜しくお願いします
[エラー] Uyomiurimst.pas(92): この型には指定した演算子は使えません
?
エラーになるとしたら、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ならしかたありませんが
大変ご迷惑をかけました。
ようやく解決する事ができました。
今後ともよろしくお願いします
ツイート | ![]() |