4,018
社区成员




bool CSqlServerHelper::Initialize(StringData mConnection, StringData * pErrInfo, bool IsAfxOleInit)
{
// 初始化COM,创建ADO连接等操作
if (IsAfxOleInit)AfxOleInit(); //因为使用了 Html 所有已经初始了 Ole Init
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些意想不到的错误。
try
{
m_pConnection.CreateInstance(__uuidof(Connection)); // 实例化 Connection
m_pConnection->ConnectionTimeout = 30; // 超时 5 秒
// 连接 Sql Server
m_Connection = mConnection;
if (m_pConnection->Open(mConnection.GetWString().c_str(), "", "", adModeUnknown) != S_OK)
{
m_Initialize = false;
return false;
}
}
catch (_com_error *e)
{
if (pErrInfo != NULL)
pErrInfo->SetStringFormat("执行【数据库开启连接】时发生错误:%s %s %s", e->ErrorMessage(), e->Source(), e->Description());
m_Initialize = false;
return false;
}
catch (...)
{
pErrInfo->SetStringFormat("执行【数据库开启连接】时发生错误:%08x", GetLastError());
}
m_Initialize = true;
return true;
}
if (m_pConnection->Open(mConnection.GetWString().c_str(), "", "", adModeUnknown) != S_OK)