一、引入ADO库文件 在stdafx.h文件末尾添加以下语句: #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")注......
一、引入ADO库文件 在stdafx.h文件末尾添加以下语句: #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") 注意上面语句不要放在开头,否则编译产生下面错误提示: fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxv_w32.h 16 二、初始化OLE/COM库环境 在应用程序主类的InitInstance成员函数里加入 if(!AfxOleInit()) { AfxMessageBox("OLE初始化出错!"); return FALSE; } 三、使用ADO接口 ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。 _ConnectionPtr接口返回一个记录集或一个空指针,使用它创建一个数据连接,然后使用其它对象执行数据输入输出操作。 _CommandPtr接口返回一个记录集,它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。 _RecordsetPtr是一个记录集对象,与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。 1、使用_ConnectionPtr接口 _ConnectionPtr MyDb; MyDb.CreateInstance(__uuidof(Connection)); MyDb->Open("Provider=SQLOLEDB;SERVER=127.0.0.1;DATABASE=Northwind;UID=sa;PWD=","","",-1); 2、使用_RecordsetPtr接口 //用_RecordsetPtr接口获得记录集 _RecordsetPtr MySet; MySet.CreateInstance(__uuidof(Recordset)); MySet->Open("SELECT * FROM Employees", MyDb.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); //访问数据 _variant_t Holder; try { while(!MySet->adoEOF) { Holder = MySet->GetCollect("FirstName"); if(Holder.vt!=VT_NULL) m_List.InsertItem(0,(char*)(_bstr_t)Holder); //m_List是ListBox控件 MySet->MoveNext(); } } catch(_com_error * e) { CString Error = e->ErrorMessage(); AfxMessageBox(e->ErrorMessage()); } catch(...) { MessageBox("ADO发生错误!"); } 3、使用_CommandPtr接口获取数据 _CommandPtr pCommand; _RecordsetPtr MySet1; pCommand.CreateInstance(__uuidof(Command)); pCommand->ActiveConnection=MyDb; pCommand->CommandText="select * from Employees";
1/2 1 2 下一页 尾页 |