一、 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           用于获取可能发生的详细错误信息。

Posted on 2006-04-02 22:51 艾凡赫 阅读(5758) 评论(2)  编辑 收藏 引用 所属分类: SqlServer

Feedback

# re: VC数据库编程笔记(一)  回复  更多评论   

2008-05-06 10:01 by xv
sgb

# re: VC数据库编程笔记(一)  回复  更多评论   

2009-03-11 22:00 by 土豆
收藏!

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理