try
{
m_ADOConn.CreateInstance(__uuidof(Connection));
CString connstr="Provider=OraOLEDB.Oracle.1;User ID=KNS;Password=KNS;Data Source=OKDC;";//oracle
m_ADOConn->Open( _bstr_t(connstr),"","", adModeUnknown);//连接成功
m_pADOSet.CreateInstance(__uuidof(Recordset));
this->m_bConnSuccess=true;
return true;
}
// Catch Exceptions
catch(_com_error &e)
{
CString err;
err.Format("%s", (char*)(e.Description()) );
//AfxMessageBox(err);
this->m_bConnSuccess=false;//置成功标志为假
return false;
} CString strSQL = "select testvc.aa from testvc";
if ( m_ADOConn->State == adStateOpen)
m_ADOConn->Close();
try
{
m_ADOConn->Open(strSQL, m_ADOConn.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
return TRUE;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
return FALSE;
}目前的问题是连接可以成功 但是执行查询的时候抛出异常
"ADO Error: ROW-00054: ????? O/S-Error: (OS 126) ????????c"
这是什么东西啊 救命
{
m_ADOConn->Open(strSQL, m_ADOConn.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
return TRUE;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
return FALSE;
}是不是楼主笔误了?try
{
m_pADOSet->Open(strSQL, m_ADOConn.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
return TRUE;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
return FALSE;
}
前是否已经执行了下面语句:
if ( m_ADOConn->State == adStateOpen)
m_ADOConn->Close();
CString strSQL = "select testvc.aa from testvc";
if ( m_pADOSet->State == adStateOpen)
m_pADOSet->Close();
try
{
m_pADOSet->Open(strSQL, m_ADOConn.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
return TRUE;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error: %s",(char*)e.Description());
AfxMessageBox(err);
return FALSE;
}
m_pADOSet->Open(strSQL, m_ADOConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText)
m_ADOConn->Close();你都把它关闭了,还能查吗?
去掉这两句