ADO接口
1.ADO库导入。在stdafx.h 下:
//引入ADO库
#import "C://Program Files//Common Files//System//ado//msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")
//no_namespace表示不使用命名空间,rename("EOF","adoEOF")表示把ADO中用到的EOF改为adoEOF,防止发生命名冲突。
//编译后不需要另外添加其他头文件,就可以使用ADO接口了
2.初始化COM库
ADO库是一组COM动态库,在调用ADO前,必须初始化COM库环境。
在MDC里,初始化COM库环境比较好的位置是在应用类InitInstance成员函数中
方法一:
//使用AfxOleInit,在退出应用时该函数也负责COM的释放
BOOL CExpApp::InitLnstance()
{
//初始化
if(!AfxOleInit())
{
AfxMessageBox("初始化ole dll失败!");
return FALSE;
}
......
}
//Afx前缀是MFC一个小组的名称简写,没有特别意义,MFC很多代码都使用了Afx
方法二:使用::ConInitialize初始化,::CoUninitialize释放
3.创建一个connection对象
_ConnectionPtr接口,该接口返回一个记录集或空指针。通常用它来创建一个数据库连接,或执行一条不返回任何结果的SQL语句,如一个存储过程。
不推荐使用_ConnectionPtr返回记录集,对于要返回记录集的操作通常用_RecordsetPtr来实现。
声明一个_ConnectionPtr指针
_ConnectionPtr pConnection=NULL;
//_ConnectionPtr 主要是一个连接接口,取得与数据库的连接。他的连接字符串可以是直接写,也可以指向一个ODBC DSN
//创建Connection对象(两种方法)
pConnection.CreateInstance(_uuidof(Connection));
pConnection.CreateInstance(ADODB.Connection");
ADO最重要的三个对象:连接对象(Connection),命令对象(Command),记录集对象(RecordSet),使用这三个对象时,需要定义与之相对应的智能指针,分别为:
_ConnectionPtr ,_CommandPtr,_RecordsetPtr
智能指针需要先定义指针变量,创建实例,然后就可以调用其方法和属性。
4.打开连接,建立Connection对象实例之后,需要调用Open()函数来打开数据源的连接:
HRESULT Open(_bstr_t ConnectionString,_bstr_t UserID,_bstr_t Password,long Options);