预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

使用ADO数据库编程 ADO(ActiveXDataObject)是Microsoft数据库应用程序开发的新接口,是建立在OLEDB之上的高层数据库访问技术。ADO非常简单易用,甚至比ODBCAPI、DAO、RDO都要容易使用,并不失灵活性。本节将讨论如何使用ADO进行数据库的开发,介绍ADO库定义文件,讨论用Connection对象连接数据库、通过Connection、Command对象执行SQL命令及利用Recordset对象取得结果记录集进行查询、处理,下面分别介绍。 1.1导入ADO的动态链接库 用#import指令引入ADO类型库,在使用的文件中加入如下语句#import"c:\programfiles\commonfiles\system\ado\msado15.dll"no_namespacerename("EOF","adoEOF") 这句话的作用是编译的时候系统会为我们生成msado15.tlh,ado15.tli两个头文件来定义ADO库,即加载ADO动态库(msado15.dll)。其中,no_namespace表明不使用命名空间,rename("EOF","adoEOF")表明把ADO中用到的EOF改为adoEOF,防止发生命名冲突。 几点说明: 该代码需要在一行中完成,如果写成两行或者多行,行末要加上“”符号,表示把这几行看成一行。 读者的编程环境中msado15.dll不一定在这个目录下,请按实际情况修改。 在编译的时候可能会出现warningC4146警告,对此微软在MSDN中作了说明,并建议不要理会这个警告。 1.2初始化ADO控件环境 ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。初始化OLE/COM库环境的代码如下: ::CoInitialize(NULL); /*初始化OLE/COM库环境*/ 别忘了最后要释放资源: ::CoUninitialize(); /*释放程式占用的COM资源*/ 如果需要界面支持可以通过另外一个函数实现。 if(!AfxOleInit()) /*初始化OLE/COM库环境*/ { printf("OLE初始化出错!"); return0; } 每次应用程序启动时,需要通过函数AfxOleInit()或CoInitialize()实现初始化OLE/COM库环境。本书中相关实例是使用CoInitialize()来完成初始化。 1.3ADO库接口 ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。下面分别讨论各接口功能描述及使用方法。 1._ConnectionPtr接口 _ConnectionPtr是一个连接接口,返回一个记录集或一个空指针。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句。初始化COM环境后,创建与数据库的连接最佳方法是声明一个Connection对象指针_ConnectionPtr,并把它用于和Connection对象进行的所以交互中。 一旦声明了Connection对象指针,可以通过创建一个Connection对象的实例(调用函数CreateInstance()),并把Connection对象的UUID(接口的ID)作为唯一的参数传给它,从而初始化它。_ConnectionPtr接口执行过程是先创建一个_ConnectionPtr接口实例,接着指向并打开一个ODBC数据源。下面给出使用_ConnectionPtr创建一个基于DSN和非DSN的数据连接的实例。 (1)使用_ConnectionPtr基于非DSN数据连接语句。 如果没有注册数据源,可直接通过连接字符串实现数据库的连接。分别针对SQLSERVER、ORACLE和Access数据库给出连接字符串的构造实例,读者可直接使用对应的例句。 (2)连接SQLSERVER。 _ConnectionPtrpCon; /*定义pCon指针*/ pCon.CreateInstance(__uuidof(Connection)); /*初始化pCon指针*/ strConn.="driver={SQLServer};Server=kobe;DATABASE=test;UID=sa;PWD="; pCon->Open((_bstr_t)strConn,"","",adModeUnknown); 上述语句中,kobe是服务器名。如果连接本地数据库,可以是“172.0.0.1”或“.”或“localhost”都是可以的。test是数据库名称,SQ