ADO数据库开发的基本流程:
(1)初始化com库,引入ADO库定义文件
(2)用Connection对象连接数据库
(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询处理
(4)使用完毕后关闭连接释放对象
1)COM 库的初始化
必须注意的是,ADO库是一组COM动态库, 这意味着应用程序在调用ADO之前,必须初始化OLE/COM库环境。在MFC应用程序里, 一个比较好的方法是在应用程序朱磊的InitInstance成员函数里初始化OLE/COM库环境。
我们可以使用AfxOleInit()来初始化COM库,这项工作通常在InitInstance()的重载函数中完成,放在第一句的后面
BOOL CADOAPP::InitInstance()
{
AfxEnableControlContainer();
if(!AfxOleInit())
{
AfxMessageBox("OLE初始化出错!");
return FALSE;
}
}
2) 用#import指令引入ADO类型库
我们在stdafx.h中加入如下语句,放到stdafx.h最后面
#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF");
这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh, ado15.tlli两个C++头文件来定义ADO库
这行语句生命在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF
现在不需添加另外的头文件,就可以使用ADO接口了。
3)创建Connection对象并连接数据库
首先我们需要添加一个指向Connection对象的指针
在APP类中的.h的APP定义里面加入代码:
class CADOAPP: public CWinApp
{
public:
CADOApp();
_ConnectionPtr m_pConnection;
}
在BOOL CADOApp::InitInstance()加入代码:
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.jet.OLEDB.4.0;Data Source=student.mdb","","",adModeUnkonwn);
//连接