使用ADO数据库打开操作时,线程会增加5个,句柄增加54个。这里增加无所谓,系统要使用嘛,
但我在关闭操作时,线程才减少3个,句柄更惨,才减少了8个,真不知是什么原因。
这问题可真让我头晕,不知是ADO的问题还是我自己的问题。下面是我的一些分析,还望大家多多帮手。
//打开操作
HRESULT hr;
try
{
//创建Connection对象
hr = m_pConnection.CreateInstance("ADODB.Connection"); //此句线程数加1 句柄数增加37
if (SUCCEEDED(hr))
{
//连接数据库
hr = m_pConnection->Open(sConnect,sUsername, sPasswd, adModeUnknown); //此句线程数加4 句柄数增加17
if (SUCCEEDED(hr))
{
m_pCommand.CreateInstance("ADODB.Command");
m_pRecordset.CreateInstance("ADODB.Recordset");
}
}
else if (FAILED(hr))
return FALSE;
}
catch(_com_error &e)
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s", e.ErrorMessage());
TRACE("%s", errormessage);///显示错误信息
e.Error();
return FALSE;
}return TRUE;
//关闭操作
try
{
m_pConnection->Close(); //此句执行后线程数减3 句柄数减8
}
catch (_com_error &e)
{
CString errormessage;
errormessage.Format("关闭数据库失败!\r\n错误信息:%s", e.ErrorMessage());
TRACE("%s", errormessage);///显示错误信息
return FALSE;
}
return TRUE;
但我在关闭操作时,线程才减少3个,句柄更惨,才减少了8个,真不知是什么原因。
这问题可真让我头晕,不知是ADO的问题还是我自己的问题。下面是我的一些分析,还望大家多多帮手。
//打开操作
HRESULT hr;
try
{
//创建Connection对象
hr = m_pConnection.CreateInstance("ADODB.Connection"); //此句线程数加1 句柄数增加37
if (SUCCEEDED(hr))
{
//连接数据库
hr = m_pConnection->Open(sConnect,sUsername, sPasswd, adModeUnknown); //此句线程数加4 句柄数增加17
if (SUCCEEDED(hr))
{
m_pCommand.CreateInstance("ADODB.Command");
m_pRecordset.CreateInstance("ADODB.Recordset");
}
}
else if (FAILED(hr))
return FALSE;
}
catch(_com_error &e)
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s", e.ErrorMessage());
TRACE("%s", errormessage);///显示错误信息
e.Error();
return FALSE;
}return TRUE;
//关闭操作
try
{
m_pConnection->Close(); //此句执行后线程数减3 句柄数减8
}
catch (_com_error &e)
{
CString errormessage;
errormessage.Format("关闭数据库失败!\r\n错误信息:%s", e.ErrorMessage());
TRACE("%s", errormessage);///显示错误信息
return FALSE;
}
return TRUE;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货