SQLを使って文字を検索

SQL・・・昨夜から挑戦していますが、まるで雲をつかむようです。 エラーばかりで全然できませんでしたが、今日なんとか1つだけ成功しました。 どうやら、コーテーションのところで躓いていたようです。 「東京花子」を検索したい場合、WHERE NAME = ‘東京花子’ というのが検索文字になります。 この「’」をDelphiで表すには、シングルコーテーションが2つ追加されます。つまり WHERE NAME = ’’’東京花子’’’ のようになるわけです。 これがわからなかった・・・・

下のコードでは、LIKEの後ろの「”’」は%以降の文字列をくくるシングルコーテーションというわけですね。
で、後ろに4つ並んでいるシングルコーテーションは、「’」を入れるためのもの。な~るへそ

procedure TfrmMain.btnSelectClick(Sender: TObject);
  var
    s : string;
begin

  //SQLを使って文字を選択 (NAME LIKE '%TARO%')
  s := '(NAME LIKE''' + '%' +  edtName.Text + '%' + '''' + ')';

  DataModule2.tblAddress.Active := False;
  DataModule2.tblAddress.DataSet.CommandText :=
   'SELECT * FROM MEIBO WHERE' + s ;

  DataModule2.tblAddress.Active := True;
end;

実行結果

「郎」という文字をテキストボックスに入力し、「選択」をクリックしました。名前に「郎」がつくレコードが選択されました。
複雑な検索をするには、フィルターだけでは無理みたいですね。「~を含む」というのはできなかったもの。
だけど、SQL難しそうです。

interbase-27

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です