使用ADO对象开发应用程序也类似其他技术,需产生与数据源的连接,创建记录等步骤,但与其他访问技术不同的是,ADO技术对对象之间的层次和顺序关系要求不是太严格。在程序开发过程中,不必先建立连接,然后才能产生记录对象。可以在使用记录的地方直接使用记录对象,在创建记录对象的同时,程序自动建立了与数据源的连接。这种模型有力地简化了程序设计,增强了程序的灵活性。下面讲述使用ADO对象进行程序设计的方法。
(1)引入ADO库文件
使用ADO前必须在工程的stdafx.h文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下所示:
#define INITGUID
#import "c:\program files\common files\system\ado\msado15. dll"
no_namespace rename("EOF"," EndOfFile")
#include "icrsint.h"
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免冲突,将EOF改名为EndOfFile。
(2)初始化ADO环境
在使用ADO对象之前必须先初始化COM环境,初始化COM环境可以用以下代码完成:
::CoInitialize(NULL);
在初始化COM环境后,就可以使用ADO对象了,如果在程序前面没有添加此代码,将会产生COM错误。
在使用完ADO对象后,需要用以下的代码将初始化的对象释放:
::CoUninitialize();
此函数清除了为ADO对象准备的COM环境。
(3)使用ADO访问数据库
__ConnectionPtr是一个连接接口,首先创建一个__ConnectionPtr接口实例,接着指向并打开一个ODBC数据源或OLE DB数据提供者(Provider)。以下代码分别创建一个基于DSN和非DSN的数据连接。
//使用__ConnectionPtr(基于DSN)
__ConnectionPtr MyDb;
MyDb.CreateInstance(__uuidof(Connection));
MyDb-〉Open("DSN=samp;UID=admin;PWD=admin","","",-1);
//使用—ConnectionPtr (基于非DSN)
__ConnectionPtr MyDb;
MyDb.CreateInstance(__uuidof(Connection)); MyDb.Open("Provider =SQLOLEDB;SERVER=server;DATABASE=samp;
UID=admin;PWD=admin","", "",-1);