COleDBRecordView 類別
在控制項中顯示資料庫記錄的檢視。
語法
class COleDBRecordView : public CFormView
成員
受保護的建構函式
名稱 | 描述 |
---|---|
COleDBRecordView::COleDBRecordView | 建構 COleDBRecordView 物件。 |
公用方法
名稱 | 描述 |
---|---|
COleDBRecordView::OnGetRowset | 傳回標準 HRESULT 值。 |
COleDBRecordView::OnMove | 更新數據源上的當前記錄(如果已變更),然後移至指定的記錄(下一筆、上一筆、第一筆或最後一筆)。 |
備註
檢視是直接連接到 CRowset
物件的窗體檢視。 檢視會從對話框範本資源建立,並在對話框範本的控件中顯示物件的欄位 CRowset
。 物件 COleDBRecordView
會使用對話框數據交換 (DDX) 和內 CRowset
建的導覽功能,將表單上的控制件與數據列集欄位之間的資料移動自動化。 COleDBRecordView
也提供預設實作,以便移至目前在檢視時更新記錄的第一筆、下一筆、上一筆或最後一筆記錄,以及更新記錄的介面。
您可以使用 DDX 函式搭配 COleDbRecordView
,直接從資料庫記錄集取得數據,並將其顯示在對話框控制件中。 您應該使用 DDX_*
方法 (例如 DDX_Text
),而不是 DDX_Field*
函式 (例如 DDX_FieldText
) 搭配 COleDbRecordView
使用。 DDX_FieldText
無法使用 COleDbRecordView
,因為 DDX_FieldText
會採用類型 CRecordset*
(for CRecordView
) 或 CDaoRecordset*
(for CDaoRecordView
) 的額外自變數。
COleDBRecordView
會追蹤使用者在數據列集中的位置,以便記錄檢視可以更新使用者介面。 當使用者移至數據列集的任一端時,記錄檢視會停用使用者介面物件,例如功能表項或工具列按鈕,以便以相同方向進一步移動。
如需數據列集類別的詳細資訊,請參閱 使用 OLE DB 消費者範本 一文。
繼承階層架構
COleDBRecordView
需求
標頭: afxoledb.h
COleDBRecordView::COleDBRecordView
建構 COleDBRecordView
物件。
COleDBRecordView(LPCTSTR lpszTemplateName);
COleDBRecordView(UINT nIDTemplate);
參數
lpszTemplateName
包含以 Null 結尾的字串,該字串是對話框範本資源的名稱。
nIDTemplate
包含對話框範本資源的識別碼。
備註
當您建立衍生自 COleDBRecordView
的類型物件時,請叫用其中一個建構函式來建立檢視物件,並識別檢視所依據的對話資源。 您可以依名稱來識別資源(將字串當做自變數傳遞至建構函式),或藉由其標識碼來識別資源(傳遞不帶正負號的整數作為自變數)。
注意
衍生類別 必須 提供自己的建構函式。 在建構函式中,使用資源名稱或識別碼做為自變數,叫用建構 COleDBRecordView::COleDBRecordView
函式 。
COleDBRecordView::OnGetRowset
傳回與記錄檢視相關聯的 CRowset<> 物件的句柄。
virtual CRowset<>* OnGetRowset() = 0;
傳回值
標準 HRESULT 值。
備註
您必須覆寫這個成員函式,以建構或取得數據列集物件,並傳回它的句柄。 如果您使用 ClassWizard 宣告記錄檢視類別,精靈會為您撰寫預設覆寫。 ClassWizard 的預設實作會傳回儲存在記錄檢視中的數據列集句柄,如果有的話。 如果沒有,它會建構您使用 ClassWizard 指定的型別數據列集物件,並呼叫其 Open
成員函式來開啟數據表或執行查詢,然後傳回物件的句柄。
注意
在 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_RECORD_FIRST - 移至記錄集中的第一筆記錄。
ID_RECORD_LAST - 移至記錄集中的最後一筆記錄。
ID_RECORD_NEXT - 移至記錄集中的下一筆記錄。
ID_RECORD_PREV - 移至記錄集中的上一筆記錄。
傳回值
如果移動成功,則為非零;否則,如果移動要求遭到拒絕,則為 0。
備註
默認實作會呼叫與記錄檢視相關聯之對象的適當 Move
成員函式 CRowset
。
根據預設, OnMove
如果使用者在記錄檢視中變更了目前的記錄,則會更新數據源上的當前記錄。
[應用程式精靈] 會建立具有 [第一筆記錄]、[上次記錄]、[下一筆記錄] 和 [上一筆記錄] 功能表項的功能表資源。 如果您選取 [可停駐工具列] 選項,[應用程式精靈] 也會建立一個工具列,其中包含對應至這些命令的按鈕。
如果您移動超過記錄集中的最後一筆記錄,記錄檢視會繼續顯示最後一筆記錄。 如果您往後移動超過第一筆記錄,記錄檢視會繼續顯示第一筆記錄。