レコードセット: クエリの再実行 (ODBC)
このトピックの内容は、MFC ODBC クラスに該当します。
このトピックでは、レコードセットオブジェクトを使用して、データベースからのクエリを再実行する (つまり更新する) 方法と、 requery メンバー関数を使用して実行する方法について説明します。
レコードセットを再クエリする主な理由は次のとおりです。
自分が追加したレコード、他のユーザーが削除したレコード、他のユーザーによって削除されたレコードに対して、レコードセットを最新の状態にします (削除したレコードは既にレコードセットに反映されています)。
パラメーター値の変更に基づいてレコードセットを更新します。
レコードセットを最新の状態にする
多くの場合、レコードセットオブジェクトを再クエリして最新の状態にする必要があります。 マルチユーザーデータベース環境では、レコードセットの有効期間中に他のユーザーがデータに変更を加えることができます。 他のユーザーによって加えられた変更をレコードセットに反映する場合と、他のユーザーのレコードセットが変更を反映する場合の詳細については、「 レコードセット: レコード更新のしくみ (ODBC) と ダイナセット」を参照してください。
新しいパラメーターに基づいた再クエリ
もう1つ — のよく — ある重要な使用方法は、パラメーター値の変更に基づいて新しいレコードセットを選択することです。 —
ヒント
を呼び Requery 出す場合よりも、パラメーター値を変更してを呼び出すと、クエリ速度が大幅に速くなることがあり Open ます。
ダイナセットとスナップショットの再クエリ
ダイナセットは動的な最新データを含む一連のレコードを提示することを目的としているため、他のユーザーの追加を反映する場合は、多くの場合、ダイナセットを再クエリする必要があります。 一方、スナップショットは、レポートの準備、合計の計算などを行うときに静的コンテンツに安全に依存できるので便利です。 ただし、場合によっては、スナップショットの再クエリも必要になることがあります。 マルチユーザー環境では、他のユーザーがデータベースを変更したときに、スナップショットデータとデータソースとの同期が失われることがあります。
レコードセットオブジェクトを再クエリするには
- オブジェクトの Requery メンバー関数を呼び出します。
または、元のレコードセットを閉じて再度開くこともできます。 どちらの場合も、新しいレコードセットはデータソースの現在の状態を表します。
例については、「 レコードビュー: 2 番目のレコードセットからリストボックスに入力する」を参照してください。
ヒント
パフォーマンスを最適化するに Requery は、レコードセットの Requery または 並べ替えを変更しないようにします。 を呼び出す前に、パラメーター値のみを変更して Requery ください。
呼び出しが失敗した場合は、 Requery 呼び出しを再試行できます。それ以外の場合は、アプリケーションを正常に終了する必要があります。 またはの呼び出しは、いくつかの RequeryOpen 理由により失敗する可能性があります。 ネットワークエラーが発生した可能性があります。または、の呼び出し中に、既存のデータがリリースされた後、新しいデータが取得される前に、別のユーザーが排他アクセスを取得する可能性があります。または、レコードセットが依存しているテーブルを削除することもできます。
こちらもご覧ください
レコードセット (ODBC)
レコードセット: データ列を動的にバインドする (ODBC)
レコードセット: レコードセットの作成と終了 (ODBC)