章 数据库开发
·351·
12.6.1 动态链接库的引入和OLE/COM 库的初始化
利用ADO 技术编写程序,首先要告诉编译器去什么地方找ADO 的库文件,通常这个文
件在c:\program files\common files\system\ado 下,文件名为msado15.dll。因此,第一步应该
在文件“stdafx.h”的开头加上如下语句:
#import "c:\program files\common files\system\ado\msado15.dll" no_ncomspace rencom("EOF", "adoEOF")
使用no_ncomspace 意味着程序员不需要在初始化变量的时候引用名字空间,最后的cāo作
表明将EOF 更名为adoEOF,如果不这样做,在程序中很可能会碰到常量冲突。
将ADO 的动态链接库引入后,在正式用ADO 编写程序前,还需要对OLE/COM 库初始
化,代码如下:
CoInitialize( NULL );
12.6.2 ADO 与数据库的连接
引入ADO 库并初始化OLE/COM 后,接下来要进行ADO 与数据库的连接。
ADO 与数据库连接时,有一个最重要的数据类型,即_ConnectionPtr,它实际上就是由
类模板_com_ptr_t 而得到的一个具体的实例类。_ConnectionPtr 类封装了Connection 对象的
Idispatch 接口指针,及一些必要的cāo作,通过这个指针便可以cāo纵Connection 对象。通常的
连接实现方式如下:
_ConnectionPtr conn;
conn.CreateInstance(__uuidof(Connection));
conn->Open(BSTR ConnectionString, BSTR UserID, BSTR Password, long Options);
各参数意义如下:
? ConnectionString:最关键的参数,它表明了要连接的数据源,在本章中采用的是Access
数据库,它的格式一般为: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb",
至于其他数据库,请读者参考相关资料;此外,ConnectionString 还可以是数据源的名
字。
? UserID:用户名,如果ConnectionString 中已经包含,则可以为空。
? Password:密码,如果ConnectionString 中已经包含,则可以为空。
? Options:表示是以同步方式(adConnectUnspecified)还是以异步方式(adAsyncConnect)
进行连接,默认为同步。
具体的,有以下两种实现连接的方式:
(1)LPCSTR strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb";
conn->Open(