请输入您要查询的百科知识:

 

词条 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>

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/24 11:18:40