ADO连接数据库连接经常断开,超级频繁

浅爱 2013-07-29 04:56:19
用ADO方式连接MYSQL数据库,贴出连接数据库的代码,还望各位指点下什么情况下连接总是断开。
InitializeCriticalSection(&MysqlQuery_Lock);
HRESULT hr;
try
{
hr = m_pConnect.CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
{
char connectStr[500];
sprintf(connectStr,"Driver=MySQL ODBC 5.1 Driver;DATABASE=%s;server=%s", sqlName, addressAndPort);
_bstr_t strConnect=connectStr;
hr = m_pConnect->Open(strConnect,userName,password,adModeUnknown);



return 0;
}
return -1;
}
catch (_com_error e)
{
Write_SrvRuning_Log(e.Description());
return -1;
}
...全文
197 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
浅爱 2013-08-07
  • 打赏
  • 举报
回复
换了api连接数据库的方式,这个ado数据库断开的问题时而不出现,时而频繁出现。好纳闷
vicagogo 2013-08-01
  • 打赏
  • 举报
回复
引用 6 楼 vicagogo 的回复:
[quote=引用 5 楼 xiaoxiao54562 的回复:] [quote=引用 2 楼 vicagogo 的回复:] 1.楼主在多线程下用的吗?是不是注册com组件的问题啊。AfxOleInit();或者CoInitialize(NULL),UnCoInitialize(); 2.InitializeCriticalSection(&MysqlQuery_Lock); 也有可能是这个问题吧,应该还有个开始和结束语句的吧。控制锁。
不会是锁的缘故吧?[/quote] 我的意思事,你确定这个criticalsection调用正确?我记得有四个函数一起用的,initialize,begin,end,delete,貌似是这样的,记得不大清楚了。[/quote] 更正一下 //构造中 InitializeCriticalSection(&m_criticalSection); //函数开头 EnterCriticalSection(&m_criticalSection); //your code //函数结尾 LeaveCriticalSection(&m_criticalSection); //析构中 DeleteCriticalSection(&m_criticalSection);
vicagogo 2013-07-31
  • 打赏
  • 举报
回复
引用 5 楼 xiaoxiao54562 的回复:
[quote=引用 2 楼 vicagogo 的回复:] 1.楼主在多线程下用的吗?是不是注册com组件的问题啊。AfxOleInit();或者CoInitialize(NULL),UnCoInitialize(); 2.InitializeCriticalSection(&MysqlQuery_Lock); 也有可能是这个问题吧,应该还有个开始和结束语句的吧。控制锁。
不会是锁的缘故吧?[/quote] 我的意思事,你确定这个criticalsection调用正确?我记得有四个函数一起用的,initialize,begin,end,delete,貌似是这样的,记得不大清楚了。
浅爱 2013-07-31
  • 打赏
  • 举报
回复
引用 2 楼 vicagogo 的回复:
1.楼主在多线程下用的吗?是不是注册com组件的问题啊。AfxOleInit();或者CoInitialize(NULL),UnCoInitialize(); 2.InitializeCriticalSection(&MysqlQuery_Lock); 也有可能是这个问题吧,应该还有个开始和结束语句的吧。控制锁。
不会是锁的缘故吧?
smwhotjay 2013-07-30
  • 打赏
  • 举报
回复
mysql貌似有多个设置超时的地方.
向立天 2013-07-30
  • 打赏
  • 举报
回复
链接的代码没什么问题 断开应该不是这里原因
vicagogo 2013-07-29
  • 打赏
  • 举报
回复
1.楼主在多线程下用的吗?是不是注册com组件的问题啊。AfxOleInit();或者CoInitialize(NULL),UnCoInitialize(); 2.InitializeCriticalSection(&MysqlQuery_Lock); 也有可能是这个问题吧,应该还有个开始和结束语句的吧。控制锁。
zyq5945 2013-07-29
  • 打赏
  • 举报
回复
m_pConnect调用Close,Release或者销毁的时候会断开,长久不用底层的Socket也会断开。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧