try
{
HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
initMsg.Format("创建_ConnectionPtr对象失败");
ShowAndWriteAlarmInfo(initMsg);
}
char buf[200];
memset(buf,0,200);
CString adoString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" + m_szUser + ";password= " + m_szPassword + ";Initial Catalog="+m_szDBName+";Data Source=" + m_szIp + "," + m_szPort;
memcpy(buf,adoString,adoString.GetLength());
m_pConnection->ConnectionTimeout = 10;
m_pConnection->CommandTimeout = 5;
m_pConnection->Mode = adModeUnknown;
hr = m_pConnection->Open(buf, "", "", adModeUnknown);
if (SUCCEEDED(hr))
{
Msg.Format("数据库连接成功");
ShowAndWriteAlarmInfo(initMsg);
return TRUE;
}
}
catch(_com_error &e)
{
m_pConnection = NULL;
Msg.Format("无法连接数据库");
ShowAndWriteAlarmInfo(initMsg);
TRACE("Code = %0x\n", e.Error());
TRACE("Code meaning = %s\n", (char*) e.ErrorMessage());
TRACE("Source = %s\n", (char*) e.Source());
TRACE("Description = %s\n", (char*) e.Description());
return FALSE;
}
打印错误信息:
Code = 80004003
Code meaning = 无效指针
Source = (null)
Description = (null)
而且有时候可以创建连接成功,有时候不行