CDaoRecordView 類別
在控制項中顯示資料庫記錄的檢視。
注意
DAO 可透過 Office 2013 支援。 DAO 3.6 是最終版本,且被視為過時。
語法
class AFX_NOVTABLE CDaoRecordView : public CFormView
成員
受保護的建構函式
名稱 | 描述 |
---|---|
CDaoRecordView::CDaoRecordView | 建構 CDaoRecordView 物件。 |
公用方法
名稱 | 描述 |
---|---|
CDaoRecordView::IsOnFirstRecord | 如果目前記錄是相關聯記錄集中的第一筆記錄,則傳回非零。 |
CDaoRecordView::IsOnLastRecord | 如果當前記錄是相關聯記錄集中的最後一筆記錄,則傳回非零。 |
CDaoRecordView::OnGetRecordset | 傳回衍生自 CDaoRecordset 之類別物件的指標。 ClassWizard 會為您覆寫此函式,並視需要建立記錄集。 |
CDaoRecordView::OnMove | 如果當前記錄已變更,請在數據源上更新它,然後移至指定的記錄(下一筆、上一筆、第一筆或最後一筆)。 |
備註
檢視是直接連接到 CDaoRecordset
物件的窗體檢視。 檢視會從對話框範本資源建立,並在對話框範本的控件中顯示物件的欄位 CDaoRecordset
。 物件 CDaoRecordView
會使用對話框數據交換 (DDX) 和 DAO 記錄欄位交換 (DFX),將表單上的控制件與記錄集欄位之間的資料移動自動化。 CDaoRecordView
也提供預設實作,以移至目前在檢視中的記錄,以移至第一筆、下一筆、上一筆或最後一筆記錄,以及更新記錄的介面。
注意
DAO 資料庫類別與以開放式資料庫連接性 (ODBC) 為基礎的 MFC 資料庫類別不同。 所有 DAO 資料庫類別名稱都有 「CDao」 前置詞。 您仍然可以使用 DAO 類別存取 ODBC 數據源;DAO 類別通常會提供優越的功能,因為它們會使用 Microsoft Jet 資料庫引擎。
建立記錄檢視的最常見方式是使用應用程式精靈。 應用程式精靈會建立記錄檢視類別和其相關聯的記錄集類別,作為基本架構入門應用程式的一部分。
如果您只需要單一窗體,應用程式精靈方法會比較容易。 ClassWizard 可讓您決定稍後在開發程式中使用記錄檢視。 如果您未使用 [應用程式精靈] 建立記錄檢視類別,您可以稍後使用 ClassWizard 建立記錄檢視類別。 使用 ClassWizard 個別建立記錄檢視和記錄集,然後連接它們是最有彈性的方法,因為它可讓您更控制命名記錄集類別及其 。H/.CPP 檔案。 此方法也可讓您在同一個記錄集類別上有多個記錄檢視。
為了讓終端用戶輕鬆地從記錄移至記錄檢視中的記錄,應用程式精靈會建立功能表(以及選擇性工具列)資源,以移至第一筆、下一筆、上一筆或最後一筆記錄。 如果您使用 ClassWizard 建立記錄檢視類別,則必須使用功能表和點陣圖編輯器自行建立這些資源。
如需從記錄移至記錄的預設實作相關信息,請參閱 IsOnFirstRecord
和使用記錄檢視一文,這兩者都CRecordView
適用於 和 CDaoRecordView
IsOnLastRecord
。
CDaoRecordView
會追蹤記錄集中使用者的位置,讓記錄檢視可以更新使用者介面。 當使用者移至記錄集的任一端時,記錄檢視會停用使用者介面物件,例如功能表項或工具列按鈕,以便以相同方向進一步移動。
如需宣告和使用記錄檢視和記錄集類別的詳細資訊,請參閱記錄檢視一文中的<設計和建立記錄檢視>。 如需記錄檢視的運作方式和使用方式的詳細資訊,請參閱使用記錄檢視一文。 這些文章都 CRecordView
適用於與 CDaoRecordView
。
繼承階層架構
CDaoRecordView
需求
標頭: afxdao.h
CDaoRecordView::CDaoRecordView
當您建立衍生自 CDaoRecordView
的類型物件時,請呼叫任一形式的建構函式來初始化檢視物件,並識別檢視所依據的對話資源。
explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);
參數
lpszTemplateName
包含以 Null 結尾的字串,該字串是對話範本資源的名稱。
nIDTemplate
包含對話框範本資源的識別碼。
備註
您可以依名稱來識別資源(將字串當做自變數傳遞至建構函式)或其標識碼(傳遞不帶正負號的整數作為自變數)。 建議使用資源標識碼。
注意
衍生類別必須提供自己的建構函式。 在衍生類別的建構函式中,呼叫具有資源名稱或標識碼作為自變數的建構 CDaoRecordView::CDaoRecordView
函式。
CDaoRecordView::OnInitialUpdate
會呼叫 CWnd::UpdateData
,其會呼叫 CWnd::DoDataExchange
。 這個初始呼叫會將DoDataExchange
CDaoRecordView
控件連線到 CDaoRecordset
ClassWizard 所建立的欄位數據成員。 在您呼叫基類 CFormView::OnInitialUpdate
成員函式之前,無法使用這些數據成員。
注意
如果您使用 ClassWizard,精靈會在類別宣告中定義值enum
CDaoRecordView::IDD
,並在建構函式的成員初始化清單中使用它。
CMyDaoRecordView::CMyDaoRecordView()
: CDaoRecordView(CMyDaoRecordView::IDD)
{
m_pSet = NULL;
// TODO: add construction code here
}
CDaoRecordView::IsOnFirstRecord
呼叫這個成員函式,以判斷目前記錄是否為與此記錄檢視相關聯之 recordset 物件中的第一筆記錄。
BOOL IsOnFirstRecord();
傳回值
如果當前記錄是記錄集中的第一筆記錄,則為非零;否則為 0。
備註
此函式適用於撰寫由 ClassWizard 所撰寫之預設命令更新處理程式的您自己的實作。
如果使用者移至第一筆記錄,架構會停用任何使用者介面物件(例如功能表項或工具列按鈕),您必須移至第一筆或上一筆記錄。
CDaoRecordView::IsOnLastRecord
呼叫這個成員函式,以判斷當前記錄是否為與此記錄檢視相關聯之 recordset 物件中的最後一筆記錄。
BOOL IsOnLastRecord();
傳回值
如果當前記錄是記錄集中的最後一筆記錄,則為非零;否則為 0。
備註
此函式適用於撰寫 ClassWizard 寫入的預設命令更新處理程式自有實作,以支援使用者介面,以便從記錄移至記錄。
警告
此函式的結果很可靠,不同之處在於檢視在使用者移過記錄集之前,可能無法偵測到記錄集的結尾。 使用者可能必須移至最後一筆記錄,記錄檢視才能告知它必須停用任何使用者介面物件,才能移至下一筆或最後一筆記錄。 如果使用者移動超過最後一筆記錄,然後移回最後一筆記錄(或之前),記錄檢視可以追蹤用戶在記錄集中的位置,並正確地停用使用者介面物件。
CDaoRecordView::OnGetRecordset
傳回與記錄檢視相關聯之衍生物件的指標 CDaoRecordset
。
virtual CDaoRecordset* OnGetRecordset() = 0;
傳回值
如果成功建立物件,則為 CDaoRecordset
衍生物件的指標,否則為 NULL 指標。
備註
您必須覆寫這個成員函式,以建構或取得記錄集物件,並傳回它的指標。 如果您使用 ClassWizard 宣告記錄檢視類別,精靈會為您撰寫預設覆寫。 ClassWizard 的預設實作會在有記錄檢視時傳回儲存在記錄檢視中的記錄集指標。 如果沒有,它會建構您使用 ClassWizard 指定之類型的 recordset 物件,並呼叫其 Open
成員函式來開啟數據表或執行查詢,然後傳回物件的指標。
如需詳細資訊和範例,請參閱記錄檢視:使用記錄檢視一文。
CDaoRecordView::OnMove
呼叫這個成員函式以移至記錄集中的不同記錄,並在記錄檢視的控件中顯示其欄位。
virtual BOOL OnMove(UINT nIDMoveCommand);
參數
nIDMoveCommand
下列其中一個標準命令識別碼值:
ID_RECORD_FIRST移至記錄集中的第一筆記錄。
ID_RECORD_LAST移至記錄集中的最後一筆記錄。
ID_RECORD_NEXT移至記錄集中的下一筆記錄。
ID_RECORD_PREV移至記錄集中的上一筆記錄。
傳回值
如果移動成功,則為非零;否則,如果移動要求遭到拒絕,則為 0。
備註
默認實作會呼叫與記錄檢視相關聯之對象的適當Move成員函式 CDaoRecordset
。
根據預設, OnMove
如果使用者在記錄檢視中變更了目前的記錄,則會更新數據源上的當前記錄。
[應用程式精靈] 會建立具有 [第一筆記錄]、[上次記錄]、[下一筆記錄] 和 [上一筆記錄] 功能表項的功能表資源。 如果您選取 [初始工具列] 選項,[應用程式精靈] 也會建立一個工具列,其中包含對應至這些命令的按鈕。
如果您移動超過記錄集中的最後一筆記錄,記錄檢視會繼續顯示最後一筆記錄。 如果您往後移動超過第一筆記錄,記錄檢視會繼續顯示第一筆記錄。
警告
如果記錄集沒有記錄,則呼叫 OnMove
會擲回例外狀況。 在對應的移動作業之前,呼叫適當的使用者介面更新處理程式函式 、OnUpdateRecordFirst
OnUpdateRecordLast
、 OnUpdateRecordNext
或 OnUpdateRecordPrev
,以判斷記錄集是否有任何記錄。
另請參閱
CFormView 類別
階層架構圖表
CDaoRecordset 類別
CDaoTableDef 類別
CDaoQueryDef 類別
CDaoDatabase 類別
CDaoWorkspace 類別
CFormView 類別