CDaoWorkspace

CDaoWorkspace對象可讓一個用戶管理從登錄到離開期間,指定的密碼保護的資料庫會話全過程。

簡介

大多數情況下不需要多個工作區,也不需創建明確的工作區對象;在打開資料庫和記錄集對象時,它們使用DAO預設工作區。但是如果需要,可以通過創建額外工作區對象同時運行多個會話。每個工作區對象可以包含它自己的Database收集中的多個打開的資料庫對象。MFC中工作區主要是一個事務管理器,指定全部在同一個“事務區”內的一系列打開資料庫。

注意:

DAO資料庫類與基於開放資料庫連線(ODBC)的MFC資料庫類截然不同。所有DAO資料庫類名都有“CDao”前綴。通常基於DAO的MFC類比基於ODBC的MFC類功能更強。基於DAO的類通過Microsoft Jet資料庫引擎訪問數據,包括ODBC驅動程式。它們還支持數據定義語言(DDL)操作,例如通過類創建資料庫、添加表和欄位,而不必直接調用DAO。

功能

類CDaoWorkspace提供以下幾點功能:

· 如果需要,由初始化資料庫引擎創建,明確訪問預設工作區。通常通過創建資料庫和記錄集對象隱式地使用DAO預設工作區。
·事務套用工作區中打開的所有資料庫的事務區。可以創建額外的工作區管理單獨的事務區。
·到基礎Microsoft Jet資料庫引擎的許多特性的接口(請參閱靜態成員函式)。打開或創建工作區,或者在打開或創建之前調用靜態成員函式、初始化資料庫引擎。
·訪問資料庫引擎的Workspace收集,存儲所有已經附加其後的活動工作區。還可以不把它們附加到收集中創建和處理工作區。

安全性

MFC不實現DAO中用於安全性控制的Users和Groups收集。如果需要DAO的這些特徵,必須通過直接調用DAO接口親自對它們編程。有關信息,請參閱“技術指南54”。

可以用類CDaoWorkspace來:

· 顯式打開預設工作區。 通常對預設工作區的使用是隱式的──在打開新CDaoDatabase或Cdao Rec-ordset對象時。但是也不可能需要顯式訪問它──例如要訪問資料庫引擎特性或Workspace收集。有關“隱式使用預設工作區”,請參閱下面的內容。
·創建新工作區。如果想把它們添加到Workspaces收集中,則調用Append。
·打開工作區收集中現有的工作區。

創建Workspace收集中存在的新工作區在下面的Create成員函式中描述。工作區對象不支持資料庫引擎會話之間的任何方法。如果套用靜態連結MFC,結束程式不會初始化資料庫引擎。如果套用動態連結MFC,MFCDLL卸載時不初始化資料庫引擎。

只在專業版和企業版中具有的特徵:對MFC的靜態連結,只有Visual C++專業版和企業版中支持。

顯式打開預設工作區或者打開Workspaces收集中已有工作區,都在下面的Open成員函式中描述。

通過用Close成員函式關閉工作區來結束工作區會話。Close關閉以前沒關閉的任何資料庫,回滾任何未提交事務。

事務

DAO在工作區級上管理事務;因此,有多個打開資料庫的工作區上的事務適用於所有資料庫。例如兩個資料庫有未提交的更新,然後調用CommitTrans,則提交所有更新。如果想把事務限制於單個資料庫,則需要為它的單獨工作區對象。

隱式使用預設工作區

在以下環境中MFC隱式使用DAO預設工作區:

· 如果創建一個新CDaoDatabase對象,但並不是通過現有CDaoWorkspace對象這樣做的,則MFC創建一個對應於DAO預設工作區的臨時工作區對象。如果對多個資料庫進行這樣的操作,則所有資料庫對象都對應於預設工作區。可以通過CDaoDatabase數據成員訪問資料庫的工作區。
·類似的,如果創建CDaoRecordset對象而不提供指向CDaoDatabase對象的指針,則MFC創建臨時資料庫對象和擴展後的臨時工作區對象。通過一個Cdao Recordset數據成員,可以訪問記錄集的資料庫,以及間接訪問它的工作區。

其它操作

還提供了像修復損壞的資料庫或壓縮資料庫等其它資料庫操作。

所需頭檔案:#include <afxdao.h>

相關詞條

相關搜尋

熱門詞條

聯絡我們