MFC:使用具有文件和檢視的資料庫類別
您可以使用 MFC 資料庫類別搭配檔/檢視架構或不含檔/檢視架構。 本主題強調使用檔和檢視。 其說明:
如何使用 對象作為檔的主要檢視來撰寫表單型應用程式
CRecordView
。如何在文件和檢視中使用記錄集物件。
其他考慮。
如需替代方案,請參閱 MFC:使用不含文件和檢視的資料庫類別。
撰寫表單型應用程式
許多數據存取應用程式是以表單為基礎。 使用者介面是一種表單,其中包含使用者檢查、輸入或編輯數據的控制項。 若要讓您的應用程式表單以為基礎,請使用 類別 CRecordView
。 當您執行 MFC 應用程式精靈並在 [資料庫支援] 頁面上選取 [ODBC 用戶端類型] 時,專案CRecordView
會用於檢視類別。
在窗體型應用程式中,每個記錄檢視物件都會儲存物件的指標 CRecordset
。 架構的記錄欄位交換 (RFX) 機制會交換記錄集與數據源之間的數據。 對話框資料交換 (DDX) 機制會交換記錄集物件的欄位資料成員與表單上的控制件之間的數據。 CRecordView
也提供預設的命令處理程式函式,可讓您從記錄巡覽至表單上的記錄。
若要使用應用程式精靈建立窗體型應用程式,請參閱建立窗體型 MFC 應用程式和資料庫支援、MFC 應用程式精靈。
如需表單的完整討論,請參閱 記錄檢視。
在文件和檢視中使用記錄集
許多簡單的表單型應用程式不需要檔。 如果您的應用程式較為複雜,您可能想要使用檔做為資料庫的 Proxy,並 CDatabase
儲存連接到數據源的物件。 表單型應用程式通常會將記錄集物件的指標儲存在檢視中。 其他類型的資料庫應用程式會將記錄集和 CDatabase
物件儲存在檔案中。 以下是在資料庫應用程式中使用檔案的一些可能性:
如果您要存取本機內容中的記錄集,請視需要,在檔或檢視的成員函式中,於本機建立
CRecordset
物件。將 recordset 物件宣告為函式中的局部變數。 將 NULL 傳遞至建構函式,這會導致架構為您建立並開啟暫存
CDatabase
物件。 或者,將指標傳遞至CDatabase
物件。 使用函式內的記錄集,並讓它在函式結束時自動終結。當您將 NULL 傳遞至記錄集建構函式時,架構會使用記錄集
GetDefaultConnect
成員函式傳回的資訊來建立CDatabase
物件並加以開啟。 精靈會為您實GetDefaultConnect
作。如果您在檔的存留期記憶體取記錄集,請在檔案中內嵌一或多個
CRecordset
物件。當您初始化檔或視需要建構記錄集物件。 如果記錄集已存在或建構,您可以撰寫函式,以傳回記錄集的指標,並在記錄集不存在時開啟記錄集。 視需要關閉、刪除及重新建立記錄集,或呼叫其
Requery
成員函式以重新整理記錄。如果您在檔的存留期間存取資料源,請內嵌
CDatabase
物件或儲存物件中的指標CDatabase
。物件
CDatabase
會管理與數據源的連線。 物件會在檔建構期間自動建構,並在初始化檔時呼叫其Open
成員函式。 當您在文件成員函式中建構記錄集物件時,會將指標傳遞至檔的CDatabase
物件。 這會讓每個記錄集與其數據源產生關聯。 當文件關閉時,資料庫物件通常會終結。 記錄集物件通常會在結束函式的範圍時終結。
其他因素
表單型應用程式通常沒有任何用於架構的檔案串行化機制,因此您可能會想要移除、停用或取代 [檔案] 選單上的 [新增] 和 [開啟] 命令。 請參閱串行化:串行化與資料庫輸入/輸出一文。
您可能也想要利用架構可支援的許多使用者介面可能性。 例如,您可以在分割器視窗中使用多個物件、在不同的多個檔介面 (MDI) 子視窗中開啟多個 CRecordView
記錄集等等。
您可能會想要實作檢視中任何專案的列印,無論是使用 CRecordView
或其他項目實作的表單。 衍生自 CFormView
CRecordView
的類別不支援列印,但您可以覆寫OnPrint
成員函式以允許列印。 如需詳細資訊,請參閱 CFormView 類別。
您可能根本不想要使用文件和檢視。 在此情況下,請參閱 MFC:使用不含檔和檢視的資料庫類別。