- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VC平台的数据存取对象(DAO)技术
PAGE 4
基于VC平台的数据存取对象(DAO)技术(1)
杨峰 唐常杰 徐代刚 宋晓梅
四川联合大学计科系(610064)
摘要:数据访问对象(DAO) 使用Microsoft Jet数据库引擎,可访问Microsoft Access 数据库,ODBC数据源,以及其他可安装的ISAM数据库。在VC平台上有灵活的DAO编程方法。MFC将DAO类封装其中。
VC是强大而灵活的编程语言。常常需要在VC中直接对数据库中的数据进行查询等操作。本文介绍使用数据存取对象(DAO)连接数据库的技术,并通过实例对细节加以说明。
1 DAO可访问的数据库
DAO 使用Microsoft Jet数据库引擎可访问Microsoft Access (.MDB) 数据库,ODBC数据源,使用一个ODBC驱动器,以及其他可安装的ISAM数据库,如dBase, Paradox, FoxPro, Btrieve等等。
2 DAO编程的三种方法
(1)采用DAO OLE Automation接口: DAO为OLE Automation提供了一个基于vtable的应用接口。DAO SDK提供了描述DAO的vtable接口的头文件,因此不需要再通过IDispatch机制编程。 当创建了一个DBEngine对象实例后,对象的实例是通过父类来创建。否则,这些对象就是典型的 OLE Component Object Model (COM) 对象。因此,应用程序需要负责释放这些对象的空间。
(2)dbDAO类: 用 VB开发 DAO接口非常简单并且需要很少的 OLE COM 知识。 dbDAO类支持对象的动态分配空间和回收空间,可能的情况下,它还采用自带的C++ 数据类型,或标准的OLE变量。它不需要精通C++,调用其函数的语法同VB中的调用相似。 它支持直接在数据结构中读取大量数据。
(3)采用MFC DAO类: 用VC++ 编程, DAO的功能是通过MFC 完成的。基于CRecordset 类的代码是为ODBC开发的, 其派生类CDAORec *注:国家自然科学基助项目
作者简介:杨峰 徐代刚 宋晓梅 四川联合大学计科系96级研究生。唐常杰 四川联大教授。研究方向是数据库与知识库。E-MAIL地址为nic6002@scuu.edu.cn
ordset类在继承了全部数据库功能的同时,增加了更完整的数据库功能。
此外,DAO还可通过ODBC访问其他类型的数据库。用户可以直接调用VC ++ 4.0版本中所包含的DAO以及DAO SDK。
3 MFC所封装的DAO类
CDaoWorkspace
该类对应于DAO中的工作台,为用户定义一个对话。它包含打开的数据库, 并提供同时处理机制。
CDaoDatabase
该类对应于DAO中的数据库,它代表与数据库的连接,比ODBC数据库类有更强的能力去操纵数据库,可以直接读取Microsoft Jet的 .MDB文件。
CDaoTableDef
该类对应于DAO中的Tabledef (表定义),
表示一个表的模式(结构),使用SQL的Data Manipulation Language (DML) 子集来生成并操纵数据库中的表。
CDaoQueryDef
该类对应于DAO中的Querydef (查询定义)。用户所生成的大多数应用程序只需要数据库记录的一个子集。Querydef对象表示用户生成并运行的查询,或者用来生成记录集合,按要求过滤和排序记录。
CDAORecordset
该类对应于DAO中的记录集合,它代表从数据源中选择的记录集合。记录集合可以代表从一个或多个数据库表的行中所选择的一个或多个特定的列(栏)。
CDaoException
该类对应于DAO中的异常处理类。
CDaoFieldExchange
该类不是MFC特有的,它管理着数据库中的记录与recordset中的字段变量之间的数据交换。
通过上述类,MFC封装了DAO的各种功能。下面,通过两个VC 5.0做的简单数据库应用程序,阐明VC+DAO+DB的技术。
4 示例
例1一个简单的查询修改程序。
设已经用Access建立如下数据库ENROLL.MDB,其中有表:Teacher和 Student, 如图1。
表 Teacher
TeacherName CourseName Hours
Tang Graphics 4
Tang Math 6
Wang Algorithm 3
Zhang C++ 4
表 Student
StudentNo StudentName Class
1005 Zhao Algorithm
1002 Qian Algorithm
100
文档评论(0)