ADOSp.Parameters.Clear;
     ADOSp.ProcedureName := 'select_midtable_ATMBank';
     ADOSp.Parameters.CreateParameter('starttime', ftString, pdInput, 10, startTime);
     ADOSp.Parameters.CreateParameter('endtime', ftString, pdInput, 10, endTime);
     ADOSp.ExecProc;
     k:=ADOSp.RecordCount;
当执行最后一句时报错,can't perform this operation on a closed
dataset,
请问我该如何得到recordCount?

解决方案 »

  1.   


         k:=ADOSp.RecordCount;
    对于前面的,这句当然错了,,TADOStoredProc是连接StoredProc,不是数据集控件吧,怎么会有recordcount呢?这些从何而来?
      

  2.   

    你的sql server是否打开
    你的存储过程有没有付值。
      

  3.   

    ADOSp.Parameters.Clear;
         ADOSp.ProcedureName := 'select_midtable_ATMBank';
         ADOSp.Parameters.CreateParameter('starttime', ftString, pdInput, 10, startTime);
         ADOSp.Parameters.CreateParameter('endtime', ftString, pdInput, 10, endTime);
         ADOSp.ExecProc;<------reason 
         k:=ADOSp.RecordCount; <----- must be  Error
    当执行最后一句时报错,can't perform this operation on a closed
    dataset,
    请问我该如何得到recordCount?
      Modify:
         ADOSp.Open;//OK
         k:=ADOSp.RecordCount;//also OK
      

  4.   

    ADOSp.Parameters.Clear;
         ADOSp.ProcedureName := 'select_midtable_ATMBank';
         ADOSp.Parameters.CreateParameter('starttime', ftString, pdInput, 10, startTime);
         ADOSp.Parameters.CreateParameter('endtime', ftString, pdInput, 10, endTime);
    //把EXECPROC改成OPEN
         ADOSp.open;
         k:=ADOSp.RecordCount;
      

  5.   

    hyfyxu(世界笨人) :TADOStoredProc是带recordcount,不然编译不会通过
    xiehua822(xiehua) :绝对没问题的,只要不带k:=ADOSp.RecordCount;就一切正常
    zjy6631(刘阿木) :报错,CommandText does not return a result set
      

  6.   

    报错,CommandText does not return a result set
    FT,你的存储过程是不是根本没有如
    select ....的返回结果集的语句啊?