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難しそうです。