2017-02-16 6 views
0

大文字と小文字(Locate case Insensitive)にかかわらず "locate"で検索したい。このような :火の鳥で"locate"でFirebirdを検索

Form1.Table1.Locate('field', (Edit1.Text),[loCaseInsensitive]) ;

、私はそれを行う方法を知りませんでした。

Delphi XE5 + Firebird 2.5 + ZEOSDBO-7.1.4。

ありがとうございました。

答えて

3

Locate機能は、すべてではなくほとんどのTDataSet-descendantコンポーネントで実装されているクライアント側の機能です。

「検索」機能ではない、つまり、データセットがサーバーから取得するテーブル行には何の影響もありません。使用しているデータセットの種類に対して通常どんな方法で行っても構いません、例えばSQL文を指定してから、データセットでOpenを呼び出します。

Locateは、最初に一致するレコードがある場合はデータセットのカーソルを移動するだけで、そうでない場合はFalseを返します。つまり、成功した場合、最初に見つかったレコードは、データセットの現在のレコード、つまりデータセットに接続されたdb対応コントロールによって表示されるレコードになります。

動作するはずですあなたが引用コードは、は、あなたがそれは、すでにデータが移入されたサポートを使用している TDataSetのタイプを提供します。もちろん、一致するレコードの位置を管理する場合にのみTrueを返します。

Found := Table1.Locate('field1;field2', VarArrayOf([Edit1.Text, Edit2.Text]), [loCaseInsensitive]); 
+0

ありがとうございましたように、あなたが何かを行うことができ、複数のフィールドの値に一致するレコードを検索します。どのように大文字と小文字(大文字と小文字を区別しない)に関係なくSQLでレコードを検索してください。 ZQuery1.SQL.Add( 'SELECT "Field1" FROM Table "Field1" =' + QuotedStr(Trim(Edit1.Text))); 'Firebird 2.5 + ZEOSDBO-7.1.4。 –

+2

@Bill:コメントに新しい質問をしないでください。代わりに、新しい質問を投稿し、ページ上部の* Ask Question *ボタンを使用して質問してください。ここでのあなたの質問は、Locateを使用することに関するものであり、回答されています。 SQLについて別の質問がある場合は、新しい投稿を作成してそこに尋ねてください。 –

関連する問題