连接数据库没问题,调试到执行sql语句时报错:
sql="select * from student";
m_rs->Open((_variant_t)(sql),_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
为什么会出现这种错误?谢谢!
sql="select * from student";
m_rs->Open((_variant_t)(sql),_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
为什么会出现这种错误?谢谢!
在你用到ADO对象之前初始化一下ole对象
CoInitialize(NULL);在用完之后要调用
UnCoInitialize(NULL);
具体代码如下:
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown
}
else AfxMessageBox("创建Connection对象错误!");
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
} 在if(SUCCEEDED(hr))句时不成功。
try
{
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr))
{
}
}
catch(...)
{
AfxMessageBox("Error!");
bRet = FALSE;
}
AfxOleInit();
CoInitialize(NULL);谢谢各位!