ADO连接并访问数据库(MSSQL、Oracle、MySQL等) |
您所在的位置:网站首页 › adonet连接数据库代码 › ADO连接并访问数据库(MSSQL、Oracle、MySQL等) |
1.引入msado.dll动态库 添加以下代码到*.cpp文件或者添加到*.h头文件(该头文件要被*.cpp文件引用),编译一次,自动生成msado15.tlh和msado15.tli文件 #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")2.建立数据库交互类(使用面向过程编程可以将函数独立出来,类的私有成员可以设置成全局变量) class CONN_DB { public: void OnInitADOConn();//连接数据库 _RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);//执行查询,返回记录集 BOOL ExecuteSQL(_bstr_t bstrSQL);//执行SQL语句,不更新数据集的内容 void ExitConnect();//断开连接 void Check(); private: _ConnectionPtr m_pConnection;//数据库连接指针,指向数据库 _RecordsetPtr m_pRecordset;//记录集,返回查询结果 };3.连接数据库函数(代码以MSSQL为例,其他数据连接连接字符串上有差异) void CONN_DB::OnInitADOConn() { ::CoInitialize(NULL);//初始化OLE/COM库环境 try { m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象 _bstr_t strConnect = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Souese=.";//连接字符串 m_pConnection->Open(strConnect, "", "", adModeUnknown);//打开本地数据库 } catch (_com_error e) { std::cout CursorLocation = adUseClient;//与客户端游标有关,否则无法返回记录条数3.操作数据库(查询)并返回结果 _RecordsetPtr& CONN_DB::GetRecordSet(_bstr_t bstrSQL) { try { if (m_pConnection == NULL) OnInitADOConn(); m_pRecordset.CreateInstance(__uuidof(Recordset));//创建记录集 m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);//使用adOpenStatic,可以调用记录集指针的函数返回记录个数 } catch (_com_error e) { std::cout State == adStateOpen) std::cout |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |