ADO + ORACLE 
我的程序
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((_bstr_t)strSQL,(IDispatch*)m_pConnection,adOpenStatic,adLockOptimistic,adCmdText);

vUserID=m_pRecordset->GetCollect("START_TIME");
vUserAccount=m_pRecordset->GetCollect("LOGIN_CODE");

if(vUserAccount.vt != VT_NULL)
{
temp = (LPCSTR)_bstr_t(vUserAccount);
}
AfxMessageBox(temp);
}其中strSQL是strSQL=_T("SELECT LOGIN_CODE ,START_TIME, END_TIME  FROM VC_TIME ,JC_USER_TABLE WHERE VC_TIME.YG_ID = JC_USER_TABLE.ROW_ID ") ;运行弹对话框告诉我是未指定的错误我调试走到这儿vUserID=m_pRecordset->GetCollect("START_TIME");再向下就直接到catch{}里了请问是什么原因啊? 我试着查一张表可以,看来多张不行,怎么办啊?
用下面指明是哪个表的字段也不可以:
vUserID=m_pRecordset->GetCollect("VC_TIME.START_TIME");多表查得的记录怎么获取各个字段啊?
我在线等啊

解决方案 »

  1.   

    楼主的问题正好也是我想要解决的问题,
    如果是我,我会再次创建一个m_pRecordset2 进行另一张表的打开和访问,不调用SQL语句。
    如果此法不通,帮你顶一下!
      

  2.   

    现在可以了,我调试取得记录数为零,原来没有符合条件的记录
    这样取vUserID=m_pRecordset->GetCollect("START_TIME"); 
    肯定错了,呵呵,我换了条件,可以了.呵呵
    看来不是多表的问题啊,是记录集不可以为空啊.不过怎么判断m_pRecordset是否为空啊?
      

  3.   

    while( !m_pRecordset->adoEOF )
    {
      vUserID=m_pRecordset->GetCollect("START_TIME");
      ...
    }
    用 while( !m_pRecordset->adoEOF ) 进行判断,如果记录集为空就不执行读取的任务。