次の方法で共有


CRecordset::Requery

更新 : 2007 年 11 月

レコードセットを再構築 (再表示) します。

virtual BOOL Requery( );

戻り値

レコードセットが再作成できた場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

複数のレコードが返されたときは、先頭のレコードが現在のレコードになります。

ユーザー自身またはほかのユーザーがデータ ソースに行った追加や削除をレコードセットに反映させるには、Requery 関数を呼び出してレコードセットを再度ビルドします。レコードセットがダイナセットの場合、ユーザー自身またはほかのユーザーが行った既存のレコードへの更新 (追加は除きます) は自動的に反映されます。レコードセットがスナップ ショットの場合は、ほかのユーザーによる追加、削除、編集を反映するには、Requery を呼び出す必要があります。

ダイナセットでもスナップショットでも、新しいフィルタや並べ替え、または新しいパラメータを使ってレコードセットを再作成する場合はいつでも、Requery 関数を呼び出します。Requery 関数を呼び出す前に、m_strFilterm_strSort に新しい値を代入して、フィルタや並べ替えの新しい属性を設定します。Requery を呼び出す前に、パラメータ データ メンバに新しい値を代入して、新しいパラメータを設定します。フィルタや並べ替えの文字列に変更がないときは、クエリを再利用できます。これによりパフォーマンスが向上します。

レコードセットのリビルドに失敗すると、レコードセットは閉じます。Requery 関数を呼び出す前に CanRestart メンバ関数を呼び出して、レコードセットが再クエリできるかどうかを調べることができます。CanRestartRequery の成功を保証しません。

k513e508.alert_caution(ja-jp,VS.90).gif注意 :

Open を呼び出した後に限り、Requery を呼び出してください。

例外

このメソッドは、CDBException* 型の例外と CMemoryException* 型の例外をスローできます。

使用例

この例は、別の並べ替え順でレコードセットを再作成します。

CCustomer rsCustSet(&m_dbCust);

// Open the recordset
rsCustSet.Open();

// Use the recordset ...

// Set the sort order and Requery the recordset
rsCustSet.m_strSort = _T("L_Name, ContactFirstName");
if(!rsCustSet.CanRestart())
   return;    // Unable to requery

if(!rsCustSet.Requery())
   // Requery failed, so take action
   AfxMessageBox(_T("Requery failed!"));

必要条件

ヘッダー : afxdb.h

参照

参照

CRecordset クラス

階層図

CRecordset::CanRestart

CRecordset::m_strFilter

CRecordset::m_strSort

その他の技術情報

CRecordset のメンバ