我想访问数据库StuInforManage的内容,但是运行到m_pLiuRecordset->Open就出错,请大侠帮忙看一下。
CoInitialize(NULL);
_ConnectionPtr m_pLiuConnection;
HRESULT hr = m_pLiuConnection.CreateInstance(__uuidof(Connection));
if (!SUCCEEDED(hr))
{
return;
}
m_pLiuConnection->ConnectionTimeout = 10;
try
{
//m_pLiuConnection->Open((_bstr_t)strConnection,"","",NULL);
m_pLiuConnection->Open("Provider=SQLOLEDB;DataSource=(local);InitialCatalog=StuInforManage","sa","123",adModeUnknown);
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),_T("警告"),MB_OKCANCEL);
} _RecordsetPtr m_pLiuRecordset;
hr = m_pLiuRecordset.CreateInstance(__uuidof(Recordset));
if (FAILED(hr))
{
:: MessageBox(NULL,_T("警告"),_T("创建选择集实例失败!"),MB_OKCANCEL);
return;
}
try
{
m_pLiuRecordset->Open("SELECT * from Log",_variant_t((IDispatch*)m_pLiuConnection,true),
adOpenStatic,adLockOptimistic,adCmdText);//有问题
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),_T("警告"),MB_OKCANCEL);
}
_variant_t vValue;
while (!m_pLiuRecordset->adoEOF)
{
try
{
vValue = m_pLiuRecordset->GetCollect("DoorNo");
CString str;
str = ((LPCSTR)(_bstr_t)vValue);
((CListBox*)GetDlgItem(IDC_LIST_DISPLAY))->AddString(str);
m_pLiuRecordset->MoveNext();
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),_T("警告"),MB_OKCANCEL);
}
}
CoUninitialize();
CoInitialize(NULL);
_ConnectionPtr m_pLiuConnection;
HRESULT hr = m_pLiuConnection.CreateInstance(__uuidof(Connection));
if (!SUCCEEDED(hr))
{
return;
}
m_pLiuConnection->ConnectionTimeout = 10;
try
{
//m_pLiuConnection->Open((_bstr_t)strConnection,"","",NULL);
m_pLiuConnection->Open("Provider=SQLOLEDB;DataSource=(local);InitialCatalog=StuInforManage","sa","123",adModeUnknown);
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),_T("警告"),MB_OKCANCEL);
} _RecordsetPtr m_pLiuRecordset;
hr = m_pLiuRecordset.CreateInstance(__uuidof(Recordset));
if (FAILED(hr))
{
:: MessageBox(NULL,_T("警告"),_T("创建选择集实例失败!"),MB_OKCANCEL);
return;
}
try
{
m_pLiuRecordset->Open("SELECT * from Log",_variant_t((IDispatch*)m_pLiuConnection,true),
adOpenStatic,adLockOptimistic,adCmdText);//有问题
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),_T("警告"),MB_OKCANCEL);
}
_variant_t vValue;
while (!m_pLiuRecordset->adoEOF)
{
try
{
vValue = m_pLiuRecordset->GetCollect("DoorNo");
CString str;
str = ((LPCSTR)(_bstr_t)vValue);
((CListBox*)GetDlgItem(IDC_LIST_DISPLAY))->AddString(str);
m_pLiuRecordset->MoveNext();
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),_T("警告"),MB_OKCANCEL);
}
}
CoUninitialize();
不用导入吧,我数据库课程设计就是用的VC6+sqlserver,直接用ADO连接就行了。不过把ADO连接数据库的部分封装成一个类会好一点吧,连接的时候直接调用