【vb精品源码栏目提醒】:网学会员在vb精品源码频道为大家收集整理了“【精品文档】Visual+C++开发数据库应用程序 - 培训资料“提供大家参考,希望对大家有所帮助!
access office 创建数据库 存储过程 数据结构 用Visual C开发数据库应用程序六 5 使用OLE DB 51 概述 OLE DB的存在为用户提供了一种统一的方法来访问所有不同种类的数据源。
OLE DB可以在不同的数据源中进行转换。
利用OLE DB客户端的开发人员在进行数据访问时只需把精力集中在很少的一些细节上而不必弄懂大量不同数据库的访问协议。
OLE DB是一套通过COM接口访问数据的ActiveX接口。
这个OLE DB接口相当通用足以提供一种访问数据的统一手段而不管存储数据所使用的方法如何。
同时OLE DB还允许开发人员继续利用基础数据库技术的优点而不必为了利用这些优点而把数据移出来。
52 使用ATL使用OLE DB数据使用程序 由于直接使用OLE DB的对象和接口设计数据库应用程序需要书写大量的代码。
为了简化程序设计Visual C提供了ATL模板用于设计OLE DB数据应用程序和数据提供程序。
利用ATL模板可以很容易地将OLE DB与MFC结合起来使数据库的参数查询等复杂的编程得到简化。
MFC提供的数据库类使OLE DB的编程更具有面向对象的特性。
Viual C所提供用于OLE DB的ATL模板可分为数据提供程序的模板和数据使用程序的模板。
使用ATL模板创建数据应用程序一般有以下几步骤 创建应用框架 加入ATL产生的模板类 在应用中使用产生的数据访问对象 不用ATL使用OLE DB数据使用程序 利用ATL模板产生数据使用程序较为简单但适用性不广不能动态适应数据库的变化。
下面我们介绍直接使用MFC OLE DB类来生成数据使用程序。
模板的使用 OLE DB数据使用者模板是由一些模板组成的包括如下一些模板下面对一些常用类作一些介绍。
会话类 CDataSource类 CDataSource类与OLE DB的数据源对象相对应。
这个类代表了OLE DB数据提供程序和数据源之间的连接。
只有当数据源的连接被建立之后才能产生会话对象可以调用Open来打开数据源的连接。
CSession类 CSession所创建的对象代表了一个单独的数据库访问的会话。
一个用CDataSource类产生的数据源对象可以创建一个或者多个会话要在数据源对象上产生一个会话对象需要调用函数Open来打开。
同时会话对象还可用于创建事务操作。
CEnumeratorAccessor类 CEnumeratorAccessor类是用来访问枚举器查询后所产生的行集中可用数据提供程序的信息的访问器可提供当前可用的数据提供程序和可见的访问器。
访问器类 CAcessor类 CAccessor类代表与访问器的类型。
当用户知道数据库的类型和结构时可以使用此类。
它支持对一个行集采用多个访问器并且存放数据的缓冲区是由用户分配的。
CDynamicAccessor类 CDynamicAccessor类用来在程序运行时动态的创建访问器。
当系统运行时可以动态地从行集中获得列的信息可根据此信息动态地创建访问器。
CManualAccessor类 CManualAccessor类中以在程序运行时将列与变量绑定或者是将参数与变量捆定。
行集类 CRowSet类 CRowSet类封装了行集对象和相应的接口并且提供了一些方法用于查询、设置数据等。
可以用Move等函数进行记录移动用GetData函数读取数据用Insert、Delete、SetData来更新数据。
CBulkRowset类 CBulkRowset类用于在一次调用中取回多个行句柄或者对多个行进行操作。
CArrayRowset类 CArrayRowset类提供用数组下标进行数据访问。
命令类 CTable类 CTable类用于对数据库的简单访问用数据源的名称得到行集从而得到数据。
CCommand类 CCommand类用于支持命令的数据源。
可以用Open函数来执行SQL命令也可以Prepare函数先对命令进行准备对于支持命令的数据源可以提高程序的灵活性和健壮性。
在stdafx.h头文件里加入如下代码。
include extern CComModule _Module include include include // if you are using schema templates 在stdafx.cpp文件里加入如下代码。
include CComModule _Module 决定使用何种类型的存取程序和行集。
获取数据 在打开数据源会话行集对象后就可以获取数据了。
所获取的数据类型取决于所用的存取程序可能需要绑定列。
按以下步