原文:https://www.cnblogs.com/liu6666/p/12638505.html
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);