c++ 连接数据库什么方式最好
答案:2 悬赏:70 手机版
解决时间 2021-02-10 18:43
- 提问者网友:暗中人
- 2021-02-10 14:27
c++ 连接数据库什么方式最好
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-02-10 15:55
在用到数据库的地方:
_ConnectionPtr m_pConnection;///声明数据库连接变量
_RecordsetPtr m_pRecordset;///声明数据库集合变量
CString strCn;
strCn.Empty();
_ConnectionPtr m_pConnection;///声明数据库连接变量
_RecordsetPtr m_pRecordset;///声明数据库集合变量
CString strCn;
strCn.Empty();
全部回答
- 1楼网友:患得患失的劫
- 2021-02-10 17:16
1、在stdafx.h文件最后(即#endif // _afx_no_afxcmn_support下面)添加: #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("eof","adoeof") 2、初始化com: afxoleinit();//这行代码要放在功能执行前,如果是基于对话框建立的程序,那就放在第一个对话框类的oninitdialog()函数的return true;前 3、在用到数据库的地方: _connectionptr m_pconnection;///声明数据库连接变量 _recordsetptr m_precordset;///声明数据库集合变量 cstring strcn; strcn.empty(); (1)连接数据库 hresult hr; try { _variant_t recordsaffected; hr = m_pconnection.createinstance("adodb.connection");///创建connection对象 if(succeeded(hr)) { hr = m_pconnection->open("dsn=test;uid=;pwd=;","","",admodeunknown);///连接数据库 } } catch( _com_error e)///捕捉异常 { cstring errormessage; errormessage.format("连接数据库失败!\r\n错误信息:%s",e.errormessage()); afxmessagebox(errormessage);///显示错误信息 } (2)通过sql读数据 cstring sql; try { m_precordset.createinstance("adodb.recordset"); m_precordset->open((_variant_t)sql,_variant_t((idispatch*)m_pconnection,true),adopenstatic,adlockoptimistic,adcmdtext); } catch(_com_error e)///捕捉异常 { cstring errormessage = e.errormessage(); afxmessagebox("读取数据时出错:"+sql+errormessage);///显示错误信息 } (3)通过sql语句添加、修改、删除记录 _variant_t recordsaffected; try { m_pconnection->execute((_bstr_t)sql,&recordsaffected,adcmdtext); } catch(_com_error *e) { afxmessagebox(e->errormessage()); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯