我这写了个连接数据库查询的,是每隔一分钟进行一次多表的连接查询:
全局的声明:
_ConnectionPtr m_pConnection; _RecordsetPtr pPtr;
连接的初始化代码: InitDBConnect() { try { //创建连接对象实例 m_pConnection.CreateInstance("ADODB.Connection"); _bstr_t strConnect = strSRC; LOG::Out0("INFO", "数据库连接初始化:%s", strSRC); //使用Open方法打开数据库 m_pConnection->Open(strConnect,"","",adModeUnknown); pPtr.CreateInstance("ADODB.Recordset"); LOG::Out0("INFO", "数据库初始化完毕!"); } catch(_com_error e) { LOG::Out0("ERROR", "初始化错误: %s", e.ErrorMessage()); LOG::Out0("ERROR", "DESCRIPTION:%s", (char *)e.Description()); } } 查询的代码: void CDataAnalyzingDlg::DBQuery(CString sql) { LOG::Out0("INFO", "查询:%s", sql); _variant_t varSQL(sql); if(FAILED(pPtr->Open(varSQL, m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText))) { //AfxMessageBox("数据查询失败!"); LOG::Out0("ERROR", "查询失败"); pPtr->Release(); return; } }我的程序执行流程:
InitDBConnect()//一分钟一次
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
报的什么错?socket错误都有一个错误码的。贴出来看看。
另:一分钟查询一次数据库,这个频度有点高,建议你改用缓存机制,不然数据库受不了。
谢谢您的回答,我现在已经把Tcp/ip的那个错误解决了,我程序写错了,造成了个死循环,数据库直接拒绝连接了。我现在是把我的获得的结果先放到个CStringArray中了,pPtr->close(),然后再处理了。不知道这样会不会好点,因为我这本身每次的数据也不是非常多,再次谢谢了