admin 管理员组

文章数量: 1184232


2025年1月1日发(作者:全面的python少儿编程课)

(一)程序设计语言VC++与DAO的应用

Visual C++6是微软公司推出的支持32位操作系统的开发工具,它提供了对Microsoft

最新技术的集成,提供了一个可视化的 C++ 编程模式,是Windows平台上的理想开发工具。

与其它工具相比,它具有以下特点。

oft Visual C++是与系统紧密联系在一起的。对于Windows系统支持的功能

如消息机制等,在Visual C++6中都可以找到原型。

2.提供一个更为强大的MFC编程接口。它提供了文档与视图、线程与进程、多任务同步、

数据库支持、网络支持及Internet支持

3.提供了一个可视化、一致的用户界面。

DAO(数据直接访问)是Microsoft继ODBC之后提供的另一个编程接口。DAO提供了一

个基本框架来创建和操纵数据库。数据的DAO具有一个层次的对象结构,它使用Microsoft

Jet Database 来实现对数据的访问。它支持的数据类型有Microsoft Jet Database,即MDB

数据库。ODBC源数据需要ODBC的相应的驱动器,可安装的ISAM数据库,如dBase、Microsoft

Foxpro等。

1)DAO主要有以下几个优点。

○1独立性更强。

在ODBC中,ODBC的应用需要很多部件的支持,如ODBC的相应的驱动器等。比方说,

你用VC开发了一个ODBC的应用,经编译连接后,在你的系统上可以运行。当移动到另一个

系统上时,你需要搬动很多的部件,并要对ODBC进行注册,否则你的应用还是不能正常运

行。DAO在这个方面,具有更强的独立性。如果你的数据库应用是基于Microsoft Jet

Database的,你甚至可以完全实现应用的独立性。

另外,ODBC需要别的数据库软件来为它创建一个数据库模板。

○2数据操纵功能更强。

ODBC只支持数据操纵语言DML功能,只能进行一些数据的查询等工作。其主要功能是

基于记录级的,如查询、增加删除记录等。若要创建一个数据库、表或索引,它就无能为力

了。

从功能上来看,DAO能支持ODBC的所有功能,并且它还支持逐渐定义语言(DDL)。可

以用它来创建一个数据库,也可以在数据库中增加新的表、索引、查询对象等,还可为表增

加或删除域的功能。可以说,它几乎支持所有的数据库功能。

○3使用更方便。

由于DAO支持数据库更多的功能,在用它编程时,更灵活、方便。它可以直接创建和修

改一个数据库,因此不需要别的软件支持。另外,在用DAO编程时,不受基本数据库模板的

限制,可以随时修改以适应应用需要。

○4具有OLE(嵌入式开发编程)机制。

DAO的实现是基于OLE机制的,它也是基于COM的对象部件的方式来实现对数据库的管

理功能。

2)DAO的有关类别如下。

1

CdaoRecordset。○该类代表了从数据源查找到的一组“记录”。它为DAO的应用完成了

有关数据存储区及数据的格式等任务。另外,它也包含了对数据源的有关查询功能。在DAO

的MFC编程中,它是交互的最主要的一个类。

○2 CdaoDatabase。

一个CdaoDatabase对象代表了与数据库的连接,通过这个连接可以对数据库的数据进

行操作,即它代表了一个数据源的作用,只是它具有对数据源更强的操作功能,它可以包含

表、索引等。

○3CdaoTableDef。CdaoTableDef代表了数据库中的一个表,每一个DAO数据库都维护

一个表集。

4

CdaoQueryDef。一个CdaoQueryDef代表了一个查询定义。一种是临时查询对象。这○

种类型的查询对象只是在查询时创建,不存储到数据库中,每次查询都必须重新创建。另一

种是永久查询。这种类型的查询对象是与数据库存储在一起的,在需要查询时至需要从数据

库中读出来就可以了。

○5CdaoWorkspace。一个CdaoWorkspace对象用来管理一个用户所使用的一个数据库区。

其他类有:CdaoException和CdaoFieldExchange类。

(二)基于组件的编程技术

创建基于对话框的ActiveX控件。

○1创建新的MFC ActiveX Control Wizard项目,取名为TestAct。在Step 2 of 2中

取消Has an “About”box。

②在Resource View页中新增一对话框资源,命名为IDD DBP DIALOG,可以在对话

框上放自己的控件。

设置对话框资源属性的Style页为

Style:Child; Border:Dialog Frame; Title Bar:unchecked;

设置More Style页为Visible:Check;Control;Check;

设置Extended Style页为 Static Edge;Check。

③为对话框资源IDD DBP DIALOG创建新类CDbpDlg,确认在TestActCtrl。h中以加

入语句#include “dbpdlg。h”,为CTestActCtrl类添加成员变量CDbpDlg dlg。

④用ClassWizard在Automation页中为CTestActCtrl类添加一个自定义方法Void

DoDbp(),外部名亦为DoDbp。在函数DoDbp()中添加语句dlg。ShowWindow(SW SHOW)。

⑤ 用ClassWizard为CTestActCtrl添加WM CREATE的处理函数OnCreate,在

CTestActCtrl::OnCreate函数中写入dlg。Create(IDD DBP DIALOG,this)。在

CTestActCtrl::OnCreate中去除pdc—>FillRect()和pdc—>Ellipse()两行代码,

添加代码dlg。MoveWindow(rcBounds,true)。

○6编译此ActiveX控件,即完成了一个基于非模式对话框的组件制作。

(三)在C++中使用数据访问对象DAO和Jet引擎

DAO(Date Access Objects)是一套简化数据库编程的OLE对象。一个代表着数据库的

Database对象包含一系列Tabledef对象,其中每一个对象都包含一系列Field对象、每个

对象的属性值及实现适当功能的方法。DAO使用一套称为Jet引擎的DLL,即Microsoft Jet

Database Engine。所有这些不仅对Microsoft的*。mdb文件提供访问,也面向其他数据库

格式。Jet包含一个强有力的查询器,这使得复杂的操作变得简单。例如,可以查询连接到

SQL Server表的MDB表,并更新查询结果视图;创建能依次引用其他查询的已储存查询(等

同于SQL视图),这些被引用的查询仍然是可更新的,能力非常强大,它减轻了开发应用程

序的负担。程序员不用编写大量繁杂的C++代码或SQL语句就能完成复杂的数据库处理任务。

DAO是以OLE自动操作双接口实现的。MFC的DAO类(CDaoXxx)设计感觉上与MFC ODBC类

(CDatabase)相同,但能力有显著增强,如它可以在运行中指定字段名。MFC DAO类与ODBC

类在命名与操作上都很相似,但对于数据库操作,DAO更简便。如果已经使用了CDatabase

和CRecordset访问MDB文件或其他一些ISAM格式,那么程序员只需简单的操作就可把代码

转换CDaoDatabase及CDaoRecordset。由于DAO类最适合于编制处理Microsoft的*。mdb

数据库的应用程序,因此可利用DAO技术,结合数据库的建立,即可实现VC++应用程序中

数据库的查询功能。


本文标签: 数据库 查询 对象 数据 支持