用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;
}数据库MySQLVC
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;
}数据库MySQLVC
2.InitializeCriticalSection(&MysqlQuery_Lock);
也有可能是这个问题吧,应该还有个开始和结束语句的吧。控制锁。
mysql貌似有多个设置超时的地方.
不会是锁的缘故吧?
我的意思事,你确定这个criticalsection调用正确?我记得有四个函数一起用的,initialize,begin,end,delete,貌似是这样的,记得不大清楚了。
不会是锁的缘故吧?
我的意思事,你确定这个criticalsection调用正确?我记得有四个函数一起用的,initialize,begin,end,delete,貌似是这样的,记得不大清楚了。更正一下
//构造中
InitializeCriticalSection(&m_criticalSection);
//函数开头
EnterCriticalSection(&m_criticalSection);//your code
//函数结尾LeaveCriticalSection(&m_criticalSection);
//析构中
DeleteCriticalSection(&m_criticalSection);