HRESULT hr;hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=SQLOLEDB; Server=madcoder;"
"Database=NorthWind; uid=sa; pwd=98009207;","","",adModeUnknown);
if (!m_pConnection->State)
AfxMessageBox("hehe");
}
跟踪的时候发现,hr总是不能正确的初始化,总是个负值,怎么回事啊?
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=SQLOLEDB; Server=madcoder;"
"Database=NorthWind; uid=sa; pwd=98009207;","","",adModeUnknown);
if (!m_pConnection->State)
AfxMessageBox("hehe");
}
跟踪的时候发现,hr总是不能正确的初始化,总是个负值,怎么回事啊?
hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=SQLOLEDB; Server=madcoder;"
"Database=NorthWind; uid=sa; pwd=98009207;","","",adModeUnknown);
if (!m_pConnection->State)
AfxMessageBox("hehe");
}
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bs = _bstr_t(" Error: ") + _bstr_t(e.Error()) + _bstr_t(" Msg: ")
+ _bstr_t(e.ErrorMessage()) + _bstr_t(" Description: ")
+ _bstr_t(e.Description());
MessageBox(0,bs,bstrSource, MB_OK);
}
加上上面一段代码,查看异常,并有中文出错提示。
你还可以用
int nRet = GetLastError();
来看出错的地方在哪里。不过这个没有上面来得详细,建议用第一个。
CoInitialize(NULL);
try
{
hr = m_pConnTemp.CreateInstance("ADODB.Connection");// if(SUCCEEDED(hr))
{
hr=m_pConnTemp->Open((_bstr_t)strConnection,"","",adModeUnknown);
}
}
catch(_com_error e)
{
CCommon common;
AfxMessageBox(common.DisplayAdoError(m_pConnTemp));
}
if (m_pConnTemp != NULL)
{
if (m_pConnTemp->State)
{
if (m_pConnection != NULL)
{
if (m_pConnection->State)
{
m_pConnection->Close ();
}
}
m_pConnection = m_pConnTemp;
}
}