用AdoQuery执行存储过程,有两个返回参数pageCount和Counts。但在获取字段值时报错误:Field "pageCount" Not Found    代码如下:  sExecSql := 'declare @pageCount int '
    +#13+' declare @Counts int '
    +#13+' exec p_pageList ''V_clinicStok'',''*'','
    +'15,1,''id'',0,'''+sConn+''',''id'',0,@pageCount output,@Counts output'
    +#13+' select @pageCount as PageCount '
    +#13+' select @counts as Counts ';  with Usersession.qryStore do
  begin
    Close;
    Sql.Clear;
    Sql.Text := sExecSql;
    Open;
    iPageCount := FieldByName('PageCount').AsInteger;  //这句报错
  end;谢谢!

解决方案 »

  1.   

        +#13+' select @pageCount as PageCount '
        +#13+' select @counts as Counts '; 
    改成
        +#13+' select @pageCount as PageCount,@counts as Counts ';
      

  2.   

    。但在获取字段值时报错误:Field "pageCount" Not Found    代码如下: 
    pageCount 这个字段没找到??
      

  3.   

    +#13+' select @pageCount as PageCount,@counts as Counts ' 
      

  4.   

    你前面写的实际是取得最后一个记录集:+#13+' select @counts as Counts '
    这个:+#13+' select @pageCount as PageCount ' 
    根本取不到。
      

  5.   

    改成 select @counts as Counts,@pageCount as PageCount了,但还是提示:Field 'PageCount' Not Found
      

  6.   

    但这个在查询分析器里执行没有问题,就是用adoQuery获取不到PageCount和counts 的值。
      

  7.   

    1.我用这个存储过程返回要查询的数据集。
    2.还要用到这两个输出参数,就是@pageCount和Counts
      

  8.   

      sExecSql := 'declare @pageCount int '
        +#13+' declare @Counts int '
        +#13+' exec p_pageList ''V_clinicStok'',''*'','
        +'15,1,''id'',0,'''+sConn+''',''id'',0,@pageCount output,@Counts output'
        +#13+' select @pageCount as PageCount, @Counts as Counts';
        //+#13+'  ';  with Usersession.qryStore do
      begin
        Close;
        Sql.Clear;
        Sql.Add(sExecSql);
        Sql.SaveToFile('123.txt');
        Open;
      end;
      
      iPageCount := Usersession.qryStore.FieldByName('PageCount').AsInteger;
    下面是 123.txt 里面的内容
    declare @pageCount int 
     declare @Counts int 
     exec p_pageList 'V_clinicStok','*',15,1,'id',0,' and 收费科室 = ''后连池诊所''','id',0,@pageCount output,@Counts output
     select @pageCount as PageCount, @counts  as Counts123.txt的内容在查询分析器里执行没有问题,但就是用adoQuery无法获取@pageCount和@counts的值。
      

  9.   


    sExecSql :=  ' declare @pageCount int '+#13+
                 ' declare @Counts int '+#13+
                 ' exec p_pageList '''+V_clinicStok'+'',''*'', 15,1,''id'',0,'''+sConn+''',''id'',0,@pageCount output,@Counts output '  +#13+
                 ' select @pageCount,@counts  ' ;Adoquery1.cloes;
    Adoquery1.Sql.Clear;
    Adoquery1.Sql.Add(sExecSql);
    Adoquery1.Sql.text;
    Adoquery1.Prepared;
    Adoquery1.ExecSql;
    iPageCount :=Adoquery1.Fields[0].Asinteger;