VC++提供的数据库访问技术

本文介绍了VC++中五种主要的数据库访问技术:ODBC及其MFC封装、DAO、OLEDB及其ADO封装。详细解释了每种技术的特点、适用场景及优缺点,为开发者选择合适的数据库访问方式提供了参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
VC++主要提供以下几种数据库访问技术:
  •        ODBC(Open DataBase Connectivity)
  •        MFC ODBC (Microsoft Foundation Class ODBC)
  •        DAO (Data Access Objects)
  •       OLE DB (Object Link and Embedding DataBase)
  •        ADO (ActiveX Data Objects)
1.       ODBC和MFC ODBC
         ODBC是为客户应用程序访问关系数据库时提供的一个标准接口,对不同的数据库,ODBC提供了一套统一的API,使得应用程序可以应用所提供的API,访问任何提供了ODBC驱动程序的数据库。而且,由于ODBC已经成为一种标准,所以现在几乎所有的关系数据库都提供了ODBC的驱动程序,从而使得ODBC应用更加广泛。
ODBC API可以进行一些低层的数据库操作,但代码编制相对来说比较复杂;而MFC ODBC是Visual C++对ODBC API封装得到的,因此可以简化程序设计,但缺点也是不言而喻的,那就是无法对数据源进行底层操作。
         ODBC是一种使用SQL的程序设计接口。使用ODBC让应用程序的编写者避免了与数据源相连的复杂性。这项技术目前已经得到了大多数DBMS厂商们的广泛支持。Microsoft Developer Studio为大多数标准的数据库格式提供了32ODBC驱动器。这些标准数据格式包括SQL ServerAccessParadoxdBaseFoxProExcelOracle以及Microsoft Text。如果用户希望使用其它格式,用户需要相应的ODBC驱动器及DBMSVisual C++ MFC类库定义了几个数据库类。在利用ODBC编程时,经常要用到Cdatabase(数据库类)、CrecordSet(记录集类)和CrecordView(可视记录集类)。
2.       DAO
         DAO提供了一种通过程序代码创建和操纵数据库的机制。多个ADO构成一个体系结构。在这个结构中,各个DAO对象协同工作。MFC DAO对象协同工作。MFC DAO是微软公司提供的用于访问Microsoft Jet数据库文件(*.mdb)的强用力的数据库开发工具,它通过DAO的封装,向程序员提供了DAO丰富的操作数据库的手段。
        和MFC ODBC相比,MFC DAO在编程的方法上并没有太多的不同。例如在这里一类CdaoDatabase代替了前面的Cdatabase,以CdaoRecordset代替了Crecordset等。但两者也不是完全一样,依据用户使用的数据库系统不同,选择不同接口会导致应用性能方面的较大差异,例如要通过Microsoft Jet数据引擎访问Microsoft Access数据库,使用DAO就会有显著的性能优势。另外,DAO接口还有其他一些特点,比如可以通过DAO访问数据库中的数据和数据库的结构定义,而且,DAO本身就是一组COM接口,加上MFC的封装,在很大程度上会给简化编程。
3.       OLE DB和ADO
        OLE DB是Visual C++开发数据库应用中提供的基于COM接口的新技术,因此OLE DB对所有的文件系统(包括关系数据库合肥关系数据库)都提供了统一的借口。这些特性使得OLE DB技术比传统的数据库访问技术更加优越。
        直接使用OLE DB来设计数据库应用程序需要大量的代码。在VC中提供了ATL模板,用于设计OLE DB数据应用程序和数据提供程序。它是一种底层接口。而ADO技术则是基于OLE DB的访问接口,对OLE DB的接口作了封装,定义了ADO对象,使得程序开发得到简化,它属于数据库访问的高层接口。
         ADO是为Microsoft最新和最强大的数据访问接口OLE DB而设计的,是一个便于使用的应用程序层。OlE DB为任何数据源都提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件、文件系统、文本和图形以及自定义业务对象等。ADO在关键的Internet方案中使用最少的网络流量,并且在前段和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。同时ADO使用了与DAO相似的约定和特性,使得它更易于学习。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值