Share via


COleDBRecordView クラス

コントロール内にデータベース レコードを表示するビューです。

構文

class COleDBRecordView : public CFormView

メンバー

保護されたコンストラクター

名前 説明
COleDBRecordView::COleDBRecordView COleDBRecordView オブジェクトを構築します。

パブリック メソッド

名前 説明
COleDBRecordView::OnGetRowset 標準の HRESULT 値を返します。
COleDBRecordView::OnMove データ ソースの現在のレコード (ダーティの場合) を更新し、指定したレコード (次、前、先頭、または最後) に移動します。

解説

ビューは、オブジェクトに直接接続されたフォーム ビューです CRowset 。 ビューはダイアログ テンプレート リソースから作成され、ダイアログ テンプレートの CRowset コントロールにオブジェクトのフィールドが表示されます。 このオブジェクトは COleDBRecordView 、ダイアログ データ交換 (DDX) と組み込 CRowsetまれているナビゲーション機能を使用して、フォーム上のコントロールと行セットのフィールド間のデータ移動を自動化します。 COleDBRecordView また、最初、次、前、または最後のレコードに移動するための既定の実装と、現在表示されているレコードを更新するためのインターフェイスも提供します。

DDX 関数を COleDbRecordView と共に使用すると、データベース レコードセットから直接データを取得し、それをダイアログ コントロールに表示できます。 で関数 (など) ではなくDDX_Field*、メソッド (例DDX_FieldTextDDX_Text: ) をCOleDbRecordView使用DDX_*する必要があります。 DDX_FieldTextは、型 CRecordset* (for) または CDaoRecordset* (forCDaoRecordViewCRecordView) の追加引数を受け取るためDDX_FieldText、機能COleDbRecordViewしません。

Note

OLE DB コンシューマー テンプレート クラスではなく、データ アクセス オブジェクト (DAO) クラスを使用する場合は、代わりにクラス CDaoRecordView を使用します。 詳細については、「概要: データベース プログラミング」を参照してください。

COleDBRecordView は、レコード ビューがユーザー インターフェイスを更新できるように、行セット内のユーザーの位置を追跡します。 ユーザーが行セットの末尾に移動すると、レコード ビューは、メニュー項目やツール バー ボタンなどのユーザー インターフェイス オブジェクトを無効にして、同じ方向に移動します。

行セット クラスの詳細については、OLE DB コンシューマー テンプレートの使用に 関する記事を 参照してください。

継承階層

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

COleDBRecordView

必要条件

ヘッダー: afxoledb.h

COleDBRecordView::COleDBRecordView

COleDBRecordView オブジェクトを構築します。

COleDBRecordView(LPCTSTR lpszTemplateName);
COleDBRecordView(UINT nIDTemplate);

パラメーター

lpszTemplateName
ダイアログ テンプレート リソースの名前である null で終わる文字列を格納します。

nIDTemplate
ダイアログ テンプレート リソースの ID 番号を格納します。

解説

派生 COleDBRecordViewした型のオブジェクトを作成する場合は、いずれかのコンストラクターを呼び出してビュー オブジェクトを作成し、ビューの基になるダイアログ リソースを識別します。 リソースは、名前 (コンストラクターに引数として文字列を渡す) または ID (引数として符号なし整数を渡す) で識別できます。

Note

派生クラス は、独自のコンストラクターを指定する必要があります 。 コンストラクターで、リソース名または ID を引数として使用してコンストラクター COleDBRecordView::COleDBRecordViewを呼び出します。

COleDBRecordView::OnGetRowset

レコード ビューに関連付けられている CRowset<> オブジェクトのハンドルを返します。

virtual CRowset<>* OnGetRowset() = 0;

戻り値

標準の HRESULT 値。

解説

行セット オブジェクトを構築または取得してハンドルを返すには、このメンバー関数をオーバーライドする必要があります。 ClassWizard でレコード ビュー クラスを宣言すると、ウィザードによって既定のオーバーライドが書き込まれます。 ClassWizard の既定の実装では、レコード ビューに格納されている行セット ハンドル (存在する場合) が返されます。 そうでない場合は、ClassWizard で指定した型の行セット オブジェクトを構築し、そのメンバー関数を Open 呼び出してテーブルを開くかクエリを実行し、オブジェクトにハンドルを返します。

Note

MFC 7.0 より前のバージョンでは、 OnGetRowset 次へのポインター CRowsetが返されました。 呼び出す OnGetRowsetコードがある場合は、戻り値の型をテンプレート化されたクラス CRowset<> に変更する必要があります。

CFrameWnd* pFrame = (CFrameWnd*)AfxGetMainWnd();
COleDBRecordView* pView = (COleDBRecordView*)pFrame->GetActiveView();

// CProductAccessor is a user-defined accessor class
CRowset<CAccessor<CProductAccessor>>* pRowSet =
(CRowset<CAccessor<CProductAccessor>>*)pView->OnGetRowset();

詳細と例については、「レコード ビュー: レコード ビューの使用」を 参照してください。

COleDBRecordView::OnMove

行セット内の別のレコードに移動し、そのフィールドをレコード ビューのコントロールに表示します。

virtual BOOL OnMove(UINT nIDMoveCommand);

パラメーター

nIDMoveCommand
次のいずれかの標準コマンド ID 値。

  • ID_RECORD_FIRST — レコードセットの最初のレコードに移動します。

  • ID_RECORD_LAST — レコードセット内の最後のレコードに移動します。

  • ID_RECORD_NEXT — レコードセット内の次のレコードに移動します。

  • ID_RECORD_PREV — レコードセット内の前のレコードに移動します。

戻り値

移動が成功した場合は 0 以外。それ以外の場合は、移動要求が拒否された場合は 0。

解説

既定の実装では、レコード ビューに関連付けられているオブジェクトのCRowset適切なMoveメンバー関数を呼び出します。

既定では、 OnMove ユーザーがレコード ビューで変更した場合、データ ソースの現在のレコードを更新します。

アプリケーション ウィザードでは、最初のレコード、最後のレコード、次のレコード、および前のレコードのメニュー項目を含むメニュー リソースが作成されます。 [ドッキング可能なツール バー] オプションを選択した場合、アプリケーション ウィザードでは、これらのコマンドに対応するボタンを含むツール バーも作成されます。

レコードセット内の最後のレコードを超えて移動すると、レコード ビューには最後のレコードが引き続き表示されます。 最初のレコードを前に戻すと、レコード ビューに最初のレコードが引き続き表示されます。

関連項目

階層図