MFC通过ADO链接SQL数据库
1.初始化COM环境
由于ADO库是一个COM动态库,所以在应用程序调用ADO之前,必须初始化COM环境,在MFC的应用程序里,通常使用CoInitialize函数初始化COM环境,在程序结束时使用CoUninitialize函数来释放COM环境。
语法:HRESULT CoInitialize(_in_opt LPVOID pvReserved);
参数被保留,且必须为NULL。
返回值:
S_OK:该线程中COM库初始化成功
S_FALSE:该线程中COM库已经被初始化
在程序类的InitInstance函数中初始化COM环境,代码如下
:: CoInitialize(NULL); //初始化COM环境
在程序最后还有释放COM环境,代码如下
:: CoUninitialize();//释放COM环境
注:也可以用AfxOleInit()函数来初始化COM环境
2.导入ADO动态链接库
在使用ADO技术时,需要导入一个ADO动态链接库msado15.dll,该动态链接库位于系统盘的“Program Files\Common Files\System\ado\”目录下。当未对ADO操作封装成类时,可以在“StdAfx.h”头文件中导入msado15.dll文件。
具体导入代码如下:
#import “C:\ Program Files\Common Files\System\ado\msado15.dll” no_namespace\
rename(“EOF”,”adoEOF”)rename(“BOF”,”adoBOF”)
在上面的代码中,通过预编译指令#import来告诉编译器将动态链接库导入到程序中,no_namespace则指示ADO对象不使用命名空间,第2行代码表示将ADO中的EOF改为adoEOF,将BOF改为adoBOF,以避免与其他库中的EOF和BOF相冲突。
3.定义ADO智能指针
在使用ADO对象开发应用程序时,有一些ADO的支持类可以使ADO对象在使用起来变得更方便。_com_ptr_t类就是其中一个,在msado15.tlh中基于_com_ptr_t类定义了几种智能指针,包括链接对象指针(_ConnectionPtr),命令对象指针(_CommandPtr),记录集对象指针(_RecordsetPtr)。通过这些指针可以很容易地创建和删除ADO对象。
首先,声明一个智能指针,代码如下:
_ConnectionPtr m_pConnection;
然后,通过CreateInstance函数创建对象实例,代码如下:
m_pConnection.CreateInstance(“ADODB.Connection”);//第一种方法
m_pConnection.CreateInstance(_uuidof(Connection));//第二种方法
代码实例:创建一个名为ADOConn的类来封装ADO操作