vc 操作oracle 郁闷啊

chmdcr 2010-03-31 03:28:36

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"
这是什么东西啊 救命
...全文
129 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujianwei1984 2012-05-17
  • 打赏
  • 举报
回复
这个问题现在有没有人解决了?
社会栋梁 2010-04-01
  • 打赏
  • 举报
回复
adOpenDynamic换成adOpenStatic试试
m_pADOSet->Open(strSQL, m_ADOConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText)
NightTravelDeity 2010-04-01
  • 打赏
  • 举报
回复
if ( m_ADOConn->State == adStateOpen)
m_ADOConn->Close();

你都把它关闭了,还能查吗?
去掉这两句
chmdcr 2010-03-31
  • 打赏
  • 举报
回复
快来人啊
chmdcr 2010-03-31
  • 打赏
  • 举报
回复
对了 不好意思 刚才复制代码复制错了

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;
}
perfeson 2010-03-31
  • 打赏
  • 举报
回复
m_ADOConn->Open
前是否已经执行了下面语句:
if ( m_ADOConn->State == adStateOpen)
m_ADOConn->Close();
社会栋梁 2010-03-31
  • 打赏
  • 举报
回复
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;
}


是不是楼主笔误了?

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;
}
社会栋梁 2010-03-31
  • 打赏
  • 举报
回复
m_ADOConn->Open不能Open SQL语句
dong918 2010-03-31
  • 打赏
  • 举报
回复
没用过

似乎你那个查询语句也要转到_bstr_t??

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧