MFC中使用DAO来打开数据库

MFC中使用DAO来打开数据库

最近在学习MFC中数据库的使用,在之前写过一篇使用使用Access技术连接数据库。在这个项目中打开的是.mdb数据库文件。在MFC中最早使用ODBC(Open Database Connect)开放数据库连接技术。ODBC是数据库的连接接口,他不管连接是何种数据库,在程序运行过程中都会提供选定数据库的引擎。微软官方对于ODBC概述:ODBC概述

有关更多关于ODBC的说明,请大家参数微软的官方文档:Microsoft 开放式数据库连接 (ODBC),我也没有看的很很懂。以此记录学习,以备后面复习需要使用。

那么今天我们介绍的DAO是什么东西呢。DAO就是DatabaseAccess Objects,数据访问对象的英文缩写,DAO和Jet引擎可以识别三类数据库:

①*.MDB数据库。

②外部数据库。它们是使用几种流行格式的“索引顺序访问方法(ISAM)”数据库,这些流行格式包括Btrieve、dBASEIII、dBASEIV、Microsoft FoxPro versions2.0和2.5以及Paradox versions 3.x和4.0。在Visual Basic中能够创建和操作所有以上格式的数据库。也可以访问文本文件数据库和Microsoft Excel或Lotus1-2-3电子表格

③ODBC数据库

包括符合ODBC标准的客户/服务器数据库,如Microsoft SQL Server。要在Visual Basic中创建真正的客户/服务器应用程序,可以使用ODBC Direct直接把命令传递给服务器处理。也就是说Visual Basic还支持其它不使用Jet数据库引擎的数据访问方法。数据访问对象的ODBC Direct模式允许使用同样的对象模型和语法绕过Jet引擎直接访问ODBC数据。

以下我们以以一个程序是实例介绍使用DAO访问*.MDB数据库。

新建一个多文档应用程序,这个程序的来源是《VC++技术内幕》一书中第29张的例子。

笔者的工程名是DAOTest。

首先在framework.h(stdafx.h)头文件中添加包含文件,如图:

Snipaste_2023-12-18_23-09-25
这个例子的思路是:在文档类中打开数据库,并读取其中的数据,然后保存起来。然后再视图类中进行显示。这和MFC的文档/视图结构是一样的。文档负责存储数据,视图负责数据的显示。

代码中的体现:

// 在DAOTestDoc.h中有这样几个成员变量


   // 负责处理并且存储数据
    CDaoRecordset* m_pRecordset;
	CDaoDatabase m_Database;
	CStringArray m_arrFiledName;
	CWordArray m_arrFiledSize;
	int m_nFileds;
	int m_nRowCount;
	CString m_strDatabase;
	CString m_strConnect;
	CString m_strQuery;
	BOOL m_bConnected;
	enum {UNK,MDB,ISAM,ODBC} m_DatabaseType;

在DAOTestView.h中,有从文档中获取数据集,然后将数据集显示出来。

int m_nSelectedRow;
CDaoRecordset* m_pSet;

这个例子中其中CDAOTestView继承于一个自定义的CRowView,这个CRowView的视图类是一个纯虚类,负责数据的处理和显示。

其中的继承关系如下:

class CDAOTestView : public CRowView

class CRowView : public CScrollView

第一步:软件运行后首先在菜单栏中选择打开哪一种数据库,我这里只有.mdb类型的数据库。所以就以打开.mdb为例了。点击打开MDB文件后,选择要打开的MDB文件,然后显示数据库中的表,如图所示。
在这里插入图片描述
第二部:选择其中一个表,然后打开。如下图,选择的是register表
Snipaste_2023-12-19_23-35-08
最后需要点击菜单栏上的关闭连接项,才能进行下一次的连接打开。

其中ODBC中最关键的两个类是:

CDatabase:表示与数据源的连接,通过此连接可操作数据源。

CRecordset:表示从数据源选择的一组记录。

DAO中与之对应的类是:

CDaoDatabase:表示使用数据访问对象 (DAO) 与 Access 数据库的连接。

CDaoRecordset:表示从数据源选择的一组记录。

最后这个项目的源码如下:源码

欢迎大家一起交流学习。

参考文档:

1.微软官方文档:ODBC 基础

2.[Microsoft ODBC Driver是由Microsoft开发的用于ODBC(开放式数据库连接)的驱动程序。ODBC是一种标准的应用程序接口,用于通过数据库管理系统(DBMS)访问和处理数据库](https://www.cnblogs.com/suv789/p/17503758.html)
库](https://www.cnblogs.com/suv789/p/17503758.html)](https://www.cnblogs.com/suv789/p/17503758.html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值