读取SQL数据库总出现错误

读取SQL数据库总出现异常
有两台电脑,程序在其中一台上运行,数据库在另外一台上。

异常位置:
try
{
strSql_water.Format(_T("select * from water_level_monitoring where id=(select max(id) from water_level_monitoring)-5"));
GetDocument()->m_dbManager.ExecuteSql(strSql_water);
_variant_t deep;
deep.vt=VT_R8; //VT_EMPTY
deep.dblVal = GetDocument()->m_dbManager.m_Recordset->GetCollect(_variant_t("water_level")); //总是在GetCollect()函数出现异常
  waterlevel=(double)deep;
GetDocument()->m_dbManager.ReleaseSQL();
}
catch(CException* e)
{
CString errStr = "";
e->GetErrorMessage(errStr.GetBuffer(), 100);
AfxMessageBox(errStr);
}

其中ExecuteSql()函数如下:

bool CCDB::ExecuteSql(CString Sql)
{
try
{
if (m_Connection != NULL)
{
m_Recordset->Open((_variant_t)Sql, m_Connection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
//m_Recordsettemp = m_Recordset;
return true;
}
else
{
AfxMessageBox(_T("没有打开数据库!"));
return false;
}
}
catch (_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
return false;
}

}
其中ReleaseSQL()函数如下:
void CCDB::ReleaseSQL()
{
if(m_Recordset != NULL)
m_Recordset->Close(); } 在Close()函数中异常不断。
}

请给位牛人看看,帮小弟支个招。谢谢啊

------解决方案--------------------
http://blog.csdn.net/zyq5945/archive/2010/05/12/5581453.aspx
变量转换看上面的连接。

异常捕获改成这样就知道错误了。
C/C++ code
try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}