|
@@ -141,7 +141,7 @@ namespace YADB
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
- __IdleConnList.pop_front();
|
|
|
|
|
|
+ __IdleConnList.pop_front(); //zzj, ERROR!!,应该是pop_back吧
|
|
__BusyConnList.push_back( pConn );
|
|
__BusyConnList.push_back( pConn );
|
|
}
|
|
}
|
|
else
|
|
else
|
|
@@ -151,7 +151,7 @@ namespace YADB
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //验证看数据库连接是否还有效
|
|
|
|
|
|
+ //验证看数据库连接是否还有效 //zzj, 新建的链接不需要测试
|
|
if ( pConn )
|
|
if ( pConn )
|
|
{
|
|
{
|
|
if ( pConn->ConnctionTest( Error ) != 0 )
|
|
if ( pConn->ConnctionTest( Error ) != 0 )
|
|
@@ -172,6 +172,7 @@ namespace YADB
|
|
return pConn;
|
|
return pConn;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //zzj, 建议使用栈展开的方式 自动回收
|
|
void CDBConnPool::GiveBack( CDBConnect * pConn )
|
|
void CDBConnPool::GiveBack( CDBConnect * pConn )
|
|
{
|
|
{
|
|
std::unique_lock<std::mutex> lock( __mtx );
|
|
std::unique_lock<std::mutex> lock( __mtx );
|
|
@@ -326,7 +327,7 @@ namespace YADB
|
|
}
|
|
}
|
|
|
|
|
|
bool CDBConnPool::Query( const char *szSql, CDBResultSet& DBRes,std::string& Error )
|
|
bool CDBConnPool::Query( const char *szSql, CDBResultSet& DBRes,std::string& Error )
|
|
- {
|
|
|
|
|
|
+ {
|
|
CDBConnect *pConn = GetDBConnect( Error );
|
|
CDBConnect *pConn = GetDBConnect( Error );
|
|
if ( 0 == pConn )
|
|
if ( 0 == pConn )
|
|
{
|
|
{
|
|
@@ -334,9 +335,9 @@ namespace YADB
|
|
}
|
|
}
|
|
|
|
|
|
MYSQL_RES* pRes = pConn->Query( szSql, Error );
|
|
MYSQL_RES* pRes = pConn->Query( szSql, Error );
|
|
- GiveBack( pConn );
|
|
|
|
- return DBRes.Bind( pRes, Error );
|
|
|
|
- }
|
|
|
|
|
|
+ GiveBack( pConn );
|
|
|
|
+ return DBRes.Bind( pRes, Error );
|
|
|
|
+ }
|
|
|
|
|
|
MYSQL_RES* CDBConnPool::Query( const char *szSql, std::string& Error)
|
|
MYSQL_RES* CDBConnPool::Query( const char *szSql, std::string& Error)
|
|
{
|
|
{
|
|
@@ -350,15 +351,15 @@ namespace YADB
|
|
return pRes;
|
|
return pRes;
|
|
}
|
|
}
|
|
my_ulonglong CDBConnPool::ExecuteSql( const char *szSql, std::string& Error )
|
|
my_ulonglong CDBConnPool::ExecuteSql( const char *szSql, std::string& Error )
|
|
- {
|
|
|
|
- CDBConnect *pConn = GetDBConnect( Error );
|
|
|
|
|
|
+ {
|
|
|
|
+ CDBConnect *pConn = GetDBConnect( Error );
|
|
if ( 0 == pConn )
|
|
if ( 0 == pConn )
|
|
{
|
|
{
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
- my_ulonglong nRet = pConn->ExecuteSql( szSql, Error );
|
|
|
|
|
|
+ my_ulonglong nRet = pConn->ExecuteSql( szSql, Error );
|
|
GiveBack( pConn );
|
|
GiveBack( pConn );
|
|
return nRet;
|
|
return nRet;
|
|
//return pConn->ExecuteSql( szSql, Error );
|
|
//return pConn->ExecuteSql( szSql, Error );
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|