频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

MS SQL Server MFC DAO 类和 MFC ODBC 类:我使用哪个类集?

来源:赛迪网技术社 作者: 出处:巧巧读书 2007-04-13 进入讨论组
上一页 1 2 3 4 5 下一页 
mfc dao 数据库

cdaoworkspace 封装 dbengine 对象和 workspace 对象。mfc dao 类提供工作区的事实非常重要。odbc 数据库类不同时支持多个数据库连接

事务处理是在 dao 数据库类中的 workspace(工作区)级别完成的,而不是在 odbc 类中的 recordse(记录集)级别完成的。一个事务可能会影响所有打开的数据库和记录集,或者您可以隔离事务,使其只会影响指定的数据库,等等。

多数时候,您不必担心工作区对象的创建。如果您未创建,mfc 就将为您打开一个工作区对象。如果您需要的话,dao 数据库类可支持多个工作区。

最后,您不必担心工作区对象超出范围或是在数据库会话完成前关闭。可以使用工作区指针访问工作区集合,访问数据库集合,以及访问数据库引擎的属性等。


cdaodatabase


cdaodatabase 在体系结构上类似于基于 odbc 的 cdatabase 类。cdaodatabase 也封装数据库连接。因为您不必总是使用 odbc,所以对于大多数桌面数据源,数据源的位置就表达为路径。cdaodatabase 可以存储 tabledef 和 querydef 对象,为您的开发提供了极大方便。cdaodatabase 可使用本地及远程数据源。在本白皮书的稍后部分,有一个可供您使用的数据源的列表。

该数据库对象在会话期间也一直继续存在。必要时可以明确地关闭数据库连接。仅就比较而言,cdatabase 类有 21 个成员函数,而 cdaodatabase 有 26 个成员函数。这些成员函数中彼此相应的都非常相似,在 cdaodatabase 中还有几个没有对应成员函数。

在 odbc 数据库类中没有与 cdaotabledef 相应的类。tabledef 对象让您检查数据库的架构(结构),不论表是本机 microsoft access 表(基本表)还是链接的表。如果用 dao 直接打开外部数据源,就可向其中添加字段和索引。如果您链接了表,就可以检查结构,但不能更改它。可以将表作为记录集的基础。这样做会使您获得几个好处,包括使用名为 seek 的快速搜索成员函数。

使用 cdaotabledef 可以确定是否可通过调用 cdaotabledef::canupdate 编辑表中的数据。mfc 负责为您管理 dao field 和 index 集合。使用 cdaotabledef 时,您可以选择是否向 tabledefs 集合中追加表;而使用所有其它对象时,会自动进行追加。

您用来检索记录的 sql 存储在 cdaoquerydef 对象中。您可用该对象存储您提出的有关数据的“问题”,如“how many customers did x dollars of business last month?”。可以检索或重新使用存储的查询,可按下列三种方法之一使用它们:

通过将指针传递到 cdaoquerydef 对象而创建记录集。

直接执行操作查询,即移动或更改数据的查询。操作查询包括追加、删除、生成表以及更新查询。删除查询和更新查询会更改现有数据;附加查询和生成表查询会移动现有数据。

执行 sqlpassthrough 查询:sql 直接传递查询是直接发送到数据库服务器而不会被 microsoft jet 数据库引擎中断的 sql 语句。sql 直接传递查询为您的应用程序提供直接使用数据库服务器的功能的能力。  

另外,cdaorecordset 还很类似于基于 odbc 的 crecordset 类。记录集不仅可以基于表,也可以基于动态集和快照。请记住,记录集代表您已检索到的记录和穿过数据的方法。移动并滚动数据的方法包括 seek(只用于表类型的记录集)、find 和 move 操作,以及 absoluteposition 和(如果您的数据源支持的话)书签。书签是唯一的标识符,可通过调用该标识符来返回指定的记录。

mfc dao 数据库类中的大部分功能是存在于 cdaorecordset 中的。crecordset 只有 44 个成员函数,与之相比 cdaorecordset 有 91 个成员函数。这种额外的功能表现为字段值的导航、高速缓存、设置和检索中,以及记录集属性的设置和检索。

cdaorecordview 和 crecordview 类有几乎相同的功能。另外,它们都还具有因基于 cformview 而获得的优点。请记住,窗体视图就好象在窗口的客户端区域伸展的对话框模板一样,有了它,添加控件与显示字段数据就很容易。appwizard 和 classwizard 支持基于窗体的数据显示。如果使用 appwizard 创建初始应用程序,您数据库中的列就会自动绑定到成员变量。

对于 dao 数据库类,异常错误处理略有不同。类 cdaoexception 将返回基础 dao ole 对象的错误消息。多数时候,您可以检索的错误信息要比通常采用基于 odbc 的类所获得的错误信息多。在 mfc 中,所有 dao 错误都表达为 cdaoexception 类型的异常错误。

当捕获到这种类型的异常错误时,可以使用 cdaoexception 成员函数从任何存储在数据库引擎 errors 集合中的 dao 错误对象中检索信息。每个错误发生时,都会有一个或多个错误对象放入 errors 集合中。当另一个 dao 操作生成错误时,errors 集合被清除,新的错误对象被放入 errors 集合。

cdaofieldexchange 类支持由 dao 数据库类使用的 dao 记录字段交换 (dfx) 例程。如果您正在编写自定义数据类型的数据交换例程,则使用该类;否则,您不会直接使用该类。dfx 在您 cdaorecordset 对象的字段数据成员和数据源上当前记录的相应字段之间交换数据。dfx 管理两个方向中的交换,即来自数据源的交换与到数据源的交换。若需关于编写自定义 dfx 例程的信息,请参见 technical note 53(可在 books online 中的 mfc 下找到)。
保留地址 http://www.qqread.com/mysql/z308793.html 更多文章 更多内容请看SQL Server 数据处理专题SQL Server 索引和查询专题SQL Server专题,或进入讨论组讨论。
上一页 1 2 3 4 5 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选