vc++ ADO操作数据库 打开记录集出现 Unknown error 0x800A0E7D,如何解决
vc++使用ADO操作数据库,前几天运行良好,最近在打开记录集时出现Unknown error 0x800A0E7D错误,主要代码如下
头文件已引用,com也初始化过了
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordSet;
CString strConnect = "Provider=OraOLEDB.Oracle.1;Password=admin;Persist Security Info=True;User ID=dataanalysis;Data Source=(DESCRIPTION=(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT =1521)) )(CONNECT_DATA = (SID = ORCL)))";
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(hr)
{
m_pConnection->ConnectionTimeout = 15; m_pConnection->Open(_bstr_t(strConnect),"","",adModeUnknown);
}
CString Message;
Message.Format("连接数据库成功");
AfxMessageBox(Message);
}
catch(_com_error e)
{
CString errMessage;
errMessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errMessage);
}
CString sqlname = "select t.table_name from user_tab_comments t where t.table_name like 'EXIT2011%'";
try
{
m_pRecordSet.CreateInstance("ADODB.Recordset");
if (m_pRecordSet==NULL)
{
AfxMessageBox("recordSet对象创建失败");
}
m_pRecordSet->CursorLocation= adUseClient;
m_pRecordSet->Open(_bstr_t(sqlname),_variant_t((IDispatch *)m_pConnection,true), adOpenKeyset, adLockOptimistic, adCmdText); //此处出现异常
}
catch (_com_error e)
{
CString errMessage;
errMessage.Format("打开记录集失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errMessage);
}
急求指导!