Visual C++.NET数据库访问技术

Visual C++.NET提供了多种访问数据库的技术[34],主要有:

(1) ODBC (Open DataBase Connectivity)

(2) MFC ODBC (Microsoft Foundation Classes ODBC)

(3) DAO (Data Access Object)

(4) OLE DB (Object Link and Embedding DataBase)

(5) ADO (ActiveX Data Object)

(6) ADO.NET

这些技术各有自己的特点,它们提供了简单、灵活、访问速度快、可扩展性好的开发技术[35]

(1)简单性:Visual C++ .NET中提供了MFC类库、ATL模板类等一系列工具用于帮助用户快速地建立自己的应用程序,大大简化了应用程序的设计,使开发者编写很少或不需编写代码就可以开发一个数据库应用程序。

(2)灵活性:Visual C++.NET提供的开发环境以及丰富的类库和方法,使得开发者可以根据自己的需要来设计应用程序的界面和功能等等。

(3)访问速度快:为了解决ODBC开发的数据库应用程序访问数据库速度慢的问题,Visual C++.NET提供了新的访问技术。OLE DBADOADO.NET,使用这些技术可以直接对数据库的驱动程序进行访问,这将大大地提高访问速度。

(4)可扩展性:Visual C++.NET提供了OLE技术和ActiveX技术,这种技术可以增强应用程序的能力,可以使开发者利用Visual C++.NET中提供的各种组件、控件以及第三方开发者提供的组件来创建自己的程序,使应用程序具有良好的可扩展性。

(5)访问不同种类数据源:传统的ODBC技术只能访问关系型数据库,在Visual C++.NET中,提供了OLE DB访问技术,不仅可以访问关系型数据库,还可以访问非关系型数据库。

上述数据库访问技术的各自特点[36]简述如下:

1ODBC

ODBC是客户应用程序访问关系数据库时提供的一个统一的接口,对于不同的数据库,ODBC提供了一套统一的API,使应用程序可以应用所提供的API来访问任何提供了ODBC驱动程序的数据库。而且ODBC已经成为一种标准,所以目前所有的关系数据库都提供了ODBC驱动程序,这使得ODBC的应用非常广泛,基本上可用于所有的关系数据库。

但由于ODBC只能用于关系数据库,所以利用ODBC很难访问对象数据库及其他非关系数据库。 由于ODBC是一种底层的访问技术,因此,ODBC API可以使客户应用程序能够从底层设置和控制数据库,完成一些高层数据库技术无法完成的功能。

2MFC ODBC

由于直接使用ODBC API编写应用程序要编制大量代码,在Visual C++中提供了MFCODBC类,封装了ODBC API,这使得利用MFC来创建ODBC的应用程序变得非常简便。

3DAO

DAO提供了一种通过程序代码创建和操纵数据库的机制。多个DAO构成一个体系结构,在这个结构中,各个DAO对象协同工作。MFC DAO是微软提供的用于访问Microsoft Jet数据库文件(*.mdb)的强有力的数据库开发工具,它通过DAO的封装,向程序员提供了DAO丰富的操作数据库手段。

4OLE DB

OLE DB基于COM接口。因此,OLE DB对所有的文件系统包括关系数据库和非关系数据库都提供了统一的接口。这些特性使得OLE DB技术比传统的数据库访问技术更加优越。与ODBC技术相似,OLE DB属于数据库访问技术中的底层接口。

直接使用OLE DB来设计数据库应用程序需要大量的代码。在Visual C++.NET中提供了ATL模板,用于设计OLE DB数据应用程序和数据提供程序。

5ADO

ADO技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点,并且ADOOLE DB的接口作了封装,定义了ADO对象,使程序开发得到简化,ADO技术属于数据库访问的高层接口。

6.ADO.NET

ADO.NET是重要的应用程序级接口,用于在Microsoft.NET平台中提供数据访问服务。ADO.NET是专为基于消息的Web应用程序而设计的,同时还能为其他应用程序结构提供较好的功能。通过支持对数据的松耦合访问,ADO.NET减少了与数据库的活动连接数目,从而实现了最大程度的数据共享。 ADO.NET通过对分布式ADO.NET应用程序的基本对象数据集(Dataset)支持基于XML的持久性和传输格式,来实现最大程度的数据共享。 若要创建新的访问数据库的应用程序,则ADO.NETADOOLE DB是较好的选择。

根据上述分析,本系统中使用Access来存储数据,而且采用Visual C++.Net编写非托管代码,那么选用ADO数据库访问技术将是一个不错的选择,其不仅简化了程序开发,而且可以获得良好的性能。

 ADO数据库访问技术

ADOActiveX数据对象(ActiveX Data Object)的缩写,它是Microsoft为强大的数据访问范例OLE DB而设计的,是一个便于使用的应用程序层接口。ADO使你能够编写应用程序以通过OLE.DB提供者访问和操作数据库服务器中的数据。ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。因为这种技术是OLE自动化接口,所以称之为ADO

ADO是基于组件的数据库编程接口,它是一个和编程语言无关的COM组件系统,是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术。它适合于各种客户机/服务器应用系统和基于Web的应用,尤其在一些脚本语言中访问数据库操作是ADO的主要优势。

ADO可以访问不同数据源,包括关系数据库和非关系数据库的所有文件系统。此特点使应用程序有很多的灵活性和通用性。

ADO对象模型[37]如图2-4所示,其核心对象含义如下:

(1) 连接(Connection):通过连接从应用程序访问数据源,连接是交换数据所必需的环境。

(2) 命令(Command):通过已创建连接发出的命令可用某种方式操作数据源。一般情况下,命令可在数据源中添加、删除或更新数据或者在表中以行的格式检索数据。

(3) 参数(Parameter):可重复发出不同参数的同一数据检索命令。

(4) 记录集(Recordset):如果命令在表中按信息行返回数据查询,则在本地保存这些行。

(5) 字段(Field):一个记录集行包含一个或多个字段。如果将记录集看做M 维网格,字段将排列构成列。每一字段()分别包含名称、数据类型和值的属性,在该值中包含来自数据源的真实数据。

(6) 错误(Error):通常是由于无法建立连接、执行命令或操作某些状态(例如试图使用未始化的记录集)的对象引起的。

(7) 属性(Property):每个ADO 对象都有一组惟一的属性描述或控制对象的行为。

ADO 库是一组COM动态库,库文件为msado15.dll,一般可在C:/Program files/common Files/system/ado 目录中找到该文件。为了能够使用ADO,我们需要将ADO库导入工程。在Visual C++.NET中导入的方法是在工程的stdafx.h文件中用直接添加如下代码:

#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")

第一行代码的作用是声明在工程中使用ADO, 编译的时候系统会自动生成msado15.tlhmsado15.tli两个文件来定义ADO库。代码no_namespace表示不使用命字空间。代码rename("EOF", "adoEOF")是将ADO中的EOF(文件结束)更名为adoEOF,以避免与定义了自己的EOF的其他库冲突。

图1  ADO对象模型

由于ADO是基于COM技术,所以在使用其之前应该要初始化COM库环境,即在App类的InitInstance()函数中调用AfxOleInit()函数进行初始化。 接下来就可以进行编程实现对数据库的访问等。基于ADO的数据库应用一般采用如下过程来操作数据源中的数据:

(1) 创建一个Connection对象。

(2) 打开数据源,建立同数据源的连接。

(3) 执行一个SQL命令。一旦连接成功,就可以进行查询了。

(4) 使用结果集。完成查询后,结果集就可以被应用程序使用了,可以进行浏览和修改数据等操作。

(5) 终止连接。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值