一、 VC 提供的数据库访问技术 
ODBC API 、 MFC ODBC 、 DAO 、 OLE DB 、 ADO 
访问速度:传统的 ODBC 速度较慢。 OLE DB 和 ADO 都是基于 COM 技术,使用该技术可以直接访问数据库的驱动程序,速度大大提高。 
 
可扩展性:通过 OLE DB 和 ActiveX 技术,可以利用 VC 提供的各种组件,控件和第三方提供的组建。从而实现应用程序组件化。 
 
访问不同数据源:传统 ODBC 只能访问关系数据库。 VC 中提供 OLD DB 技术可以解决该问题。 
二、 几种技术概述 
1、 ODBC API 
提供一个通用接口,为 ORACLE 和 SQLSERVER 都提供了驱动程序。用户可以 SQL 语句对数据库进行直接的底层功能操作。使用时应包含以下头文件。 ”SQL.H”,”SQLEXT.H”,”SQLTYPES.H”. 
使用步骤如下: 
第一步:分配 ODBC 环境,初始化一些内部结构。完成该步,需要分配一个 SQLHENV 类型的变量在 ODBC 环境中做句柄使用。 
第二步:为将要使用的每一个数据源分配一个连接句柄,有函数 SQLALLocHandle ()完成。 
第三步:使用 SQLConnect ()把连接句柄与数据库连接,可以先通过 SQLSetConnectAttr ()设置连接属性。 
第四步:进行 SQL 语句操作。操作完就可以断开与数据库的连接。 
第五步:释放 ODBC 环境。 
 
特点:功能强大,提供异步操作,事务处理等高级功能。目前所有关系数据库都提供了 ODBC 的驱动程序,使用很广泛。 
缺点:很难访问对象数据库和非关系数据库。 
 
2、 MFC ODBC 类 
 
为简化使用 ODBC API , VC 提供了 MFC ODBC 类,封装了 ODBC API 。 
主要 MFC ODBC 类如下: 
CDatabase 类:一个 CDatabase 对象表示一个到数据源的连接,通过它可以操作数据源。一般不需要直接使用 CDatabase 对象,因为 CDecordSet 对象可以实现大多数功能,但在进行事务处理时, CDatabase 就起到关键作用。 
CRecordSet 类:一个 CRecordSet 对象代表一个从数据源选择的一组记录的集合 ----- 记录集。记录集有两种形式: snapshot 和 dynaset 。前者表示是静态视图。后者表示记录集与其它用户对数据库的更新保持同步。 
CRecordView 类:是在空间中显示数据库记录的视图。这种视图是直接连到一个 CRecordSet 对象的格式视图。他从一个对话框模版资源创建。并将 CRecordSet 对象的字段显示在对话框模版的控件里。对象利用 DDX 和 RFX 机制。使格式上的控件和记录集的字段之间数据移动自动化。 
CDBException 类:由 Cexception 类派生,以 3 个继承的变量反映对数据库操作时的异常。 
 M_nRetCode: ODBC 返回码。 
M_strError: 字符串,描述造成抛出异常的错误原因。 
M_strStateNativeOrigin: 字符串,描述以 ODBC 错误码表示的异常错误。 
 
3、 MFC DAO 
 
MFC DAO 是微软提供的用于访问 Microsoft Jet 数据库文件( * 。 Mdb )的工具。当只需访问 Access 数据库时用该技术很方便。 
4、 OLE DB 
 
与 ODBC 技术类似, OLE DB 属于数据库访问技术中的底层接口。 
直接使用 OLEDB 需要大量代码, VC 中提供了 ATL 模版, 
OLEDB 框架定义了应用的 3 个基本类。 
 
数据提供程序 Data Provider : 拥有自己的数据并以表格形式显示数据的应用程序。 
使用者 Consumers :试用 OLEDB 接口对存储在数据提供程序中对数据进行控制的应用程序。 
服务提供程序 ServiceProvider :是数据提供程序和使用者的组合。 
 
使用 OLE DB 编程时,用户使用组件对象开发程序,这些组件包括: 
枚举器:用于列出可用的数据源; 
数据源:代表单独的数据和服务提供程序,用于创建对话; 
对话:     用于创建事务和命令; 
事务:     用于将多个操作归并为单一事务处理; 
命令:     用于向数据源发送文本命令( SQL ),返回行集; 
错误:     用于获得错误信息。 
5、 ADO 
 
ADO 技术是基于 OLE DB 的访问接口。继承了 OLEDB 的优点,并对 OLEDB 的接口作了封装,定义了 ADO 对象,使开发简化。 ADO 属于数据库访问的高层接口。 
 
ADO 在服务器应用方面非常有效,特别是动态服务器页面( ASP )的支持。 
 
ADO 对象结构类似于 OLEDB ,但并不依靠对象层次。大多数情况用户只需创建并使用需要的对象。下面的对象类组成了 ADO 接口。 
 
Connection :  用于表示与数据库的连接,以及处理一些事务和命令。 
Command :    用于处理传送给数据源的命令。 
Recordset :    用于处理数据的表格集, 包括获取和修改数据。 
Field :            用于表示记录集中的列信息,包括列值和其他信息。 
Parameter :    在传送给数据源的命令之间传递数据。 
Property :      用于操作在 ADO 中使用的其它对象的详细属性。 
Errro :           用于获取可能发生的详细错误信息