用ado的open和execute方法调用存储过程,都不能得到记录集,但是这个存储过程确实已经执行了的,该存储过程其中有一条UPDATE语句,语法正确
如果将其屏弊掉,可以得到返回的记录集,
请问为什么,我如何才能在有UPDATE的情况下,正确调用

解决方案 »

  1.   

    ADO我直接对表操作,业务在COM中完成!我帮不了你!呵呵!
      

  2.   

    Open()执行SQL的 select 语句  Execute()执行的是select以外的语句,你把你的存储过程分成2个存储过程,把select 和UPdate语句分开试试看
      

  3.   

    _RecordsetPtr   pTestRs;
    _ConnectionPtr  pCn;
    _variant_t RecordsAffected; ::CoInitialize(NULL);
    pCn.CreateInstance("ADODB.Connection");
    pRs.CreateInstance("ADODB.Recordset");
    pCn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\技術支持\\Liujun-test\\NW-test\\MMESeachFile\\vb\\MME_FileSearch\\MMEFileSearch.mdb","","",adModeUnknown); pRs = pCn->Execute("SELECT JpgMapInfo.mapcd FROM JpgMapInfo",&RecordsAffected,1); 
             pRs->GetMaxRecords();
    pRs->GetRecordCount();
    为什么我这返回不出记录总数!
      

  4.   

    我曾经也遇到过类似问题,实际非常简单,检查一下存储过程中是否有非法字符存在。我那次就是在存储过程中为了排版方便,用了"tab"键,然后在查询分析器里检查存储过程工作正常,可是程序就是得不到记录集,看看你的存储过程是不是也有"tab"键。空格键是可以用的。