分享方式:


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) 的額外自變數。

注意

如果您使用數據存取物件 (DAO) 類別,而不是 OLE DB 消費者範本類別,請改用 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
包含對話框範本資源的識別碼。

備註

當您建立衍生自 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 如果使用者在記錄檢視中變更了目前的記錄,則會更新數據源上的當前記錄。

[應用程式精靈] 會建立具有 [第一筆記錄]、[上次記錄]、[下一筆記錄] 和 [上一筆記錄] 功能表項的功能表資源。 如果您選取 [可停駐工具列] 選項,[應用程式精靈] 也會建立一個工具列,其中包含對應至這些命令的按鈕。

如果您移動超過記錄集中的最後一筆記錄,記錄檢視會繼續顯示最後一筆記錄。 如果您往後移動超過第一筆記錄,記錄檢視會繼續顯示第一筆記錄。

另請參閱

階層架構圖表