利用VC +实现DAO多表操作.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用VC实现DAO多表操作

利用VC +实现DAO多表操作 王 文 涛 (中南民族学院计算机科学系,武汉430074) 摘要:文章分析了利用VC+十的AppWizard自动生成DAO多表数据库应用程 序的不足,提出了基子数据库各表自之间的实际对应关系创建用户记录集的方法,给 出了部分应用实例。 关键词:DAO;MFC;记录集;表 0 前言 在 V C- {-+6.0中,包含编写Windows 环境下C+十数据库应用程序所需要的所有 组件,其中基本的和重要的组件是ODBC (Open Database Connectivity,开放式数据 连接)和DAO (Data Access Object,数据访 问对象)oO DBC使应用程序通过统一的接口 实现对数据库管理系统的访问,通过使用不 同的驱动程序来提供数据库的独立性(即对 于不同类型的数据库使用不同的数据库驱动 程序)。而DAO是通过数据引擎实现对数据 库的访问,DAO具有比ODBC更多更强的 功能,并且DAO使用CDaoDatabase和 CDaoRecordset类,可以将ODBC应用程序 转换成为DAO应用程序〔‘〕。DAO类提供了 一套强有力的用于维护数据库的方法集(可 以处理快照、动态集、表),其中的成员函数具 有处理复杂数据库的功能。 数据库中的各表。最后通过在应用程序中加 人与数据库记录相关联的内存变量就可快捷 地实现数据库操作功能。这一利用MFC功 能自动生成的方法无需编程就可实现数据库 中各表的关联和数据库记录的简单操作(如 上移、下移等)。但这一方法具有明显的缺陷。 就各表的关联来说,MFC默认采用迪卡尔积 形式来描述数据库中所有表之间的相互关 系,例如某一数据库中含有表1、表2、表3三 个表,采用MFC默认处理后,形成的表间关 联关系是:表1X表2X表3。若每个表分别 有m,n,k个记录,则关联后的记录就有m` n*k个,其结果不仅是内存占用过大,而且由 此所产生的许多关联是不必要和错误的(比 如某两个表之间可能根本就没有关联)。众所 周知,关系数据库中表间的关联关系是非常 重要的,从这一角度来看,若要用VC十+有 效地实现DAO的多表操作功能,需要采用 别的方法。 1 DAO应用(框架)程序的自动生成 首先 在 MicrosoftA ccess中生成一个包 含多个表的数据库(后缀为.mdb ),然后利 用VC十十的AppWizard在新工程生成时加 人DAO数据库相关功能。这一工作可以通 过以下步骤完成:先选择Database view without file support或Database view with file support选项;然后再选择DA()并全选 2 编程实现DAO多表处理功能 2.1 DAO概述 MF ,C D A ()类使用MicrosoftJ et数据 。库引擎操作系统和用户数据库中的数据。它 提供了一种通过程序代码创建和操作数据库 的机制。多个p八O对象(共有17个)〔2二构成 一个体系结构,在这个结构里,各个DA()对 象协同工作。Visual C+十6.。的MFC通过 一套类(MFC DAO)封装了DA()的功能。 《电脑与信息技术》21301年第1期·29。 MFC类库中包含如表1所示的5个DAO数 据库类[‘〕。 表1 MFC中的DAO数据库类 DAO数据库类 CDaoWorkspace CDaoDatabase CDaoRecordset CDaoTableDef 用于管理用户从登录到退出数 据库期间的一切活动 用于表示与数据库的连接 用于表示从数据库源中选取的 一个记录集 用于表示主表或连接表的保存 定义 CDaoQueryDef 用于将查询定义存人数据库 2.2 编程实现 为 了 克 服上述利用AppWizard自动生 成DAO数据库应用程序的缺陷,发挥手动 编程的灵活性,需要利用MFC所提供的 DAO类作为基类,定义(派生)适合自己应用 开发所需的DAO类。主要思想是利用 CDaoRecordset类为基类,根据自己数据库 中各表间的关联关系进行分组。分组时可考 虑如下的基本原则是: (1) 没 有 相互关系的表不分在同一组内。 (2) 关 系 紧密且直接相关联的表分在同 一组内,但组内表的数目不宜过多。 (3 )利 用 关系的“传递性”来控制表的分 组数目,降低复杂性。 进行 完 表 的分组工作后就可分别生成基 于类CDaoRecordset的若干个派生记录集 类。每个派生记录集类分别包含: (1 )数 据 库的相应字段定义变量和基本 处理函数的申明(它们在.h文件中给出)。 (2) 数 据 字段变量的初始化和基本处理 函数的定义(它们在.cpp文件中给出)。其中 有两个函数分别说明了本记录集类所用到的 用户数据库的路径和所包含表

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档