功能是查看给定的员工是否存在,能成功连接 上数据库,但运行到_RecordsetPtr类型的m_pRecordset->Open时,总说访问错误,第一次用VC操作Oracle,查半天了,写得没错阿,那是不是还需要个Oracle的ADO驱动之类的东西阿,不懂,大虾请帮忙啦:)我的m_pRecordset已经成功创建,其他的程序还没写呢,就写了这一段,
BOOL CWeeklyMgrDoc::EmpExist(PEMPLOYEE pEmp)
{
if (pEmp == NULL)
return FALSE; CString sqlStr;
sqlStr.Format("SELECT * FROM TEMP WHERE EMPCODE = '%s'", pEmp->EmpCode); m_pRecordset->Open(_variant_t(sqlStr),
_variant_t((IDispatch*)theApp.m_pConnection, true),
adOpenStatic,
adLockOptimistic,
adCmdText); return m_pRecordset->GetRecordCount() == 0;
}

解决方案 »

  1.   

    sqlStr.Format("SELECT * FROM TEMP WHERE EMPCODE = '%s'", pEmp->EmpCode);
    在%s前面把那个'去掉试试
      

  2.   

    sqlStr.Format("SELECT * FROM TEMP WHERE EMPCODE = '%s'", pEmp->EmpCode);
    在这把sqlStr弄出来到PLUS里执行下看看有没有错再说
    m_pRecordset->Open(_variant_t(sqlStr),
      

  3.   

    搂主try{}catch一下,看看是什么错误
      

  4.   

    写了下面的东西没有?
    m_pConnection->Open(_variant_t(CnnStr), "", "", adModeUnknown);
      

  5.   

    _variant_t(sqlStr) 改为_bstr_t(sqlStr)
    _variant_t((IDispatch*)theApp.m_pConnection, true)前面的_variant_t去掉不要