次の方法で共有


COleDBRecordView クラス

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

構文

class COleDBRecordView : public CFormView

メンバー

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

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

パブリック メソッド

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

解説

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

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

Note

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

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

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

継承階層

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

COleDBRecordView

要件

Header: afxoledb.h

COleDBRecordView::COleDBRecordView

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

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

パラメーター

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

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

解説

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

Note

派生クラス must 独自のコンストラクターを提供します。 コンストラクターで、リソース名または 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 は、ユーザーがレコード ビューで変更した場合に、データ ソースの現在のレコードを更新します。

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

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

関連項目

階層図