次の方法で共有


CDaoRecordset::Seek

現在のインデックスに指定された条件を満たす呼び出し、インデックス付き型にします。テーブルのレコードセット オブジェクトのレコードを探すには、このメンバー関数を現在のレコードを記録します。

BOOL Seek(
   LPCTSTR lpszComparison,
   COleVariant* pKey1,
   COleVariant* pKey2 = NULL,
   COleVariant* pKey3 = NULL 
);
BOOL Seek(
   LPCTSTR lpszComparison,
   COleVariant* pKeyArray,
   WORD nKeys 
);

パラメーター

  • lpszComparison
    次の文字列式の 1 つが: "<"、"<="、"="、">="、または ">"

  • pKey1
    値がインデックスの最初のフィールドに対応する COleVariant へのポインター。必須。

  • pKey2
    インデックスの値が 2 番目のフィールドに対応する COleVariant へのポインター (存在する場合)。nullへの既定値です。

  • pKey3
    インデックスの値が 3 番目のフィールドに対応する COleVariant へのポインター (存在する場合)。nullへの既定値です。

  • pKeyArray
    バリアントの配列へのポインター。配列のサイズは、インデックスの数のフィールドに対応します。

  • nKeys
    インデックスのフィールド数である配列のサイズに対応する整数。

    [!メモ]

    キーにワイルドカードを指定しないでください。ワイルドカードにより Seek は一致するレコードを返しません。

戻り値

一致するレコードがある場合はゼロ以外の場合は 0。

解説

4 フィールドまたは多くのインデックスを処理するために Seek の 2 番目の (配列の) バージョンを使用します。

Seek は、テーブル タイプのレコードセットで検索の高いインデックスを有効にします。SetCurrentIndex を呼び出して Seekを呼び出す前に現在のインデックスを設定する必要があります。インデックスが非固有のキー フィールドを識別する場合、Seek は基準を満たす最初のレコードを検索します。インデックスを設定すると、例外がスローされます。

UNICODE のレコードセットを作成していない場合 COleVariant のオブジェクトを明示的に ANSI 形式と宣言することに注意してください。これは vtSrc のコンストラクターの COleVariant::COleVariant( lpszSrc**,** vtSrc ) のフォームを使用して VT_BSTRT (ANSI) に設定することもできます COleVariant 関数 SetString( lpszSrc**,** vtSrcを使用して vtSrc の )VT_BSTRTに設定します。

Seekを呼び出すと、一つ以上のキー値と比較演算子 ("<"、"<="、"="、">="、または ">") 渡します。Seek、指定したキー フィールドを検索し、lpszComparison と pKey1で指定された条件を満たす最初のレコードを検索します。検索して、Seek は以外の値を返し、その現在のレコードになります。Seek が一致を見つける Seek にはを返し、現在のレコードは未定義です。DAO を直接使用する場合は、明示的に NoMatch のプロパティをチェックする必要があります。

lpszComparison が「=」、「> =」、または「>」 ある場合は、インデックスの先頭に Seek の開始。lpszComparison が "<" または "<=" の場合、重複したインデックス エントリが末尾にある最小のインデックスと検索の最後に Seek の開始。この場合、インデックスの末尾に重複したインデックスの項目間の任意のエントリ Seek の開始。

Seekを使用すると、そこに現在のレコードである必要はありません。

特定の条件を満たす型ダイナセットとスナップショット タイプのレコードセットのレコードを探すには、検索操作を使用します。すべてのレコードを含めるには、特定の条件を満たす行だけがレコード間の移動に、移動操作を使用します。

アタッチ テーブル型がダイナセットとスナップショット タイプのレコードセットとして開く必要があるため、任意の型のアタッチ テーブルの Seek を呼び出すことはできません。ただし、直接インストール可能な ISAM データベースを開くに CDaoDatabase::Open を呼び出すとパフォーマンスが遅い場合がありますが、そのデータベースのテーブルの Seek を呼び出すことができます。

関連情報は、DAO ヘルプ トピック「シーク メソッド」の" "を参照してください。

必要条件

Header: afxdao.h

参照

関連項目

CDaoRecordset クラス

階層図

CDaoRecordset::FindFirst

CDaoRecordset::FindLast

CDaoRecordset::FindNext

CDaoRecordset::FindPrev

CDaoRecordset::Move

CDaoRecordset::MoveFirst

CDaoRecordset::MoveLast

CDaoRecordset::MoveNext

CDaoRecordset::MovePrev

COleVariant::COleVariant

COleVariant::SetString