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操作

原文地址:https://www.cnblogs.com/marshhu/p/2981696.html