c++通过ADO连接数据库,具体要求步骤如下:
1、要导入连接ADO库文件信息,方法
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")//必须要有(换行要有 \),如果是vc6开发,此句最好放在StdAfx.h头文件中,并且放在 "#endif"上方,不要放在"afxwin.h"头文件之上,否则出错。
using namespace std; //可有可无
#pragma warning(disable:4146) //禁止4146错误代码的警告提示,可有可无(此句放在"#import……"之上
2、初始化COM库环境(也就是加载运行ado库文件的支持函数)
CoInitialize(NULL); //程序执行时初始化或构造函数时运行,且必须在使用ado函数之前调用
CoUninitialize( ); //析构函数或程序退出时执行
或在程序执行前(构造函数中)直接执行AfxOleInit(),就不需要调用CoUnitialize(),因为在AfxOleInit()退出时,该函数也执行COM资源的释放
3、声明3个智能指针,功能和作用如下:
_ConnectionPtr m_pConn; //主要用于连立与数据库的连接
m_pConn.CreateInstance(__uuidof(Connection)); //建立对象的实例,也可以用m_pConn.CreateInstance("ADODB.Connection")
_RecordsetPtr m_pRst; //主要用于对数据库记录的操作
m_pRst.CreateInstance(__uuidof(Connection));
_CommandPtr m_pCmd; //主要用于执行带参数的SQL语句的执行(如果不带参数的SQL语句执行,可以使用_RecordsetPtr)
m_pCmd.CreateInstance(__uuidof(Connection));
4、使用后要释放资源,释放资源前要先关闭:
m_pCmd.Release();
m_pRst.Release();
m_pConn.Release(); //这个指针资源必须最后释放,否则出错