我通过ADO打开数据后,想操作两张表根据表1的某个字段值去读取表2的相应字段值。
比如表1(A,B,C),表2(A,D,F,G)
我根据表1中的A字段去获取表2的D字段值,如何做,其中表1,表2中的A字段是相同的

解决方案 »

  1.   

    楼主你的意思是:  让表1的A和表2的A字段作为索引吧?然后在同一条记录内通过表1的A 取得对应表2记录的D字段?如果是这样 就先指定好2个不同的_RecordsetPtr m_pRecordset1,m_pRecordset2
    分别访问这2张表,然后利用
    while(!m_pRecordset1->adoEOF)
    {
         if(m_pRecordset1->GetCollect(_variant_t)A==m_pRecordset2->GetCollect(_variant_t)A;
         break;//定位到合适的记录
     }
    进行滚动查询就可以找到表2的D字段
      

  2.   

    首先从表1的记录集中用GetCollect取出合适的字段值,保存到变量中,再访问表2的记录集,并将相应字段值与变量中的值比较,相同的话,则表示已找到需要的记录..
      

  3.   

    这是我的代码,用的是中间变量的方法,从表中取出字段值,然后根据这个值去查询另外一张表,得到字段值,但是运行的时候有错误,帮忙看下这个代码!关于变量的声明是没有问题。                       
    CString strSQL;
    var.Clear();
    var = m_pRecordsetOld->GetCollect("别名");
    _bstr_t bstrVar(var);
    char *nvar = bstrVar;
    strSQL.Format("select * from ExtInfo where 别名='%s'",nvar); pNumRecordset->Open(_variant_t(strSQL),
    m_pConnectionNew.GetInterfacePtr(),
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);

    var.Clear();
    var = pNumRecordset->GetCollect("分机编号");
    m_pRecordsetNew->PutCollect("分机编号",var);
    m_pRecordsetNew->Update();
      

  4.   

    报什么错误??用如下代码把你的代码包起来
    try 

        //你的代码 

    catch(_com_error &e) 

        AfxMessageBox(e.Description()); 

    看看能否捕获异常??
      

  5.   

    异常捕获不到,就是出来一个对话框,然后就进了汇编语言了……,那个错误是unhandled exception in……
      

  6.   

    真是不好意思,我解决了,我忘记了生成pNumRecordset的实例了。pNumRecordset.CreateInstance(__uuidof(Recordset));
    结贴去!