COleDBRecordView クラス
コントロール内にデータベース レコードを表示するビューです。
構文
class COleDBRecordView : public CFormView
メンバー
保護されたコンストラクター
名前 | 説明 |
---|---|
COleDBRecordView::COleDBRecordView | COleDBRecordView オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
COleDBRecordView::OnGetRowset | 標準の HRESULT 値を返します。 |
COleDBRecordView::OnMove | データ ソースの現在のレコード (ダーティの場合) を更新し、指定したレコード (次、前、先頭、または最後) に移動します。 |
解説
ビューは、オブジェクトに直接接続されたフォーム ビューです CRowset
。 ビューはダイアログ テンプレート リソースから作成され、ダイアログ テンプレートの CRowset
コントロールにオブジェクトのフィールドが表示されます。 このオブジェクトは COleDBRecordView
、ダイアログ データ交換 (DDX) と組み込 CRowset
まれているナビゲーション機能を使用して、フォーム上のコントロールと行セットのフィールド間のデータ移動を自動化します。 COleDBRecordView
また、最初、次、前、または最後のレコードに移動するための既定の実装と、現在表示されているレコードを更新するためのインターフェイスも提供します。
DDX 関数を COleDbRecordView
と共に使用すると、データベース レコードセットから直接データを取得し、それをダイアログ コントロールに表示できます。 で関数 (など) ではなくDDX_Field*
、メソッド (例DDX_FieldText
DDX_Text
: ) をCOleDbRecordView
使用DDX_*
する必要があります。 DDX_FieldText
は、型 CRecordset*
(for) または CDaoRecordset*
(forCDaoRecordView
CRecordView
) の追加引数を受け取るためDDX_FieldText
、機能COleDbRecordView
しません。
Note
OLE DB コンシューマー テンプレート クラスではなく、データ アクセス オブジェクト (DAO) クラスを使用する場合は、代わりにクラス CDaoRecordView を使用します。 詳細については、「概要: データベース プログラミング」を参照してください。
COleDBRecordView
は、レコード ビューがユーザー インターフェイスを更新できるように、行セット内のユーザーの位置を追跡します。 ユーザーが行セットの末尾に移動すると、レコード ビューは、メニュー項目やツール バー ボタンなどのユーザー インターフェイス オブジェクトを無効にして、同じ方向に移動します。
行セット クラスの詳細については、OLE DB コンシューマー テンプレートの使用に 関する記事を 参照してください。
継承階層
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
ユーザーがレコード ビューで変更した場合、データ ソースの現在のレコードを更新します。
アプリケーション ウィザードでは、最初のレコード、最後のレコード、次のレコード、および前のレコードのメニュー項目を含むメニュー リソースが作成されます。 [ドッキング可能なツール バー] オプションを選択した場合、アプリケーション ウィザードでは、これらのコマンドに対応するボタンを含むツール バーも作成されます。
レコードセット内の最後のレコードを超えて移動すると、レコード ビューには最後のレコードが引き続き表示されます。 最初のレコードを前に戻すと、レコード ビューに最初のレコードが引き続き表示されます。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示