老问题了 我重复的提问一次:delphi + BDE 连接数据库其中TStoredproc  在存储过程既有 返回结果集  又返回 输出参数为什么我只能查看到  结果集   而 返回参数  TParams 设为输出参数  (PtOutput  或者 PtInputOutPut)都是为0 也就是输出参数没给赋值到TParams 上   或者说TParams 找不到 SQL输出参数??WHY``存储过程  和  代码都没问题 用 TADOStoredproc 测试  既可以 返回结果集  又可以返回 输出参数是不是BDE  和 sqlserver  问题   BDE 99年出的  sqlserver 2000BDE版本  5.2.0.2   我用D7开发   谁有D2009  可是测试下```        这到底是怎么回事???     给点建设性意见的都给分  当然能给出代码的而且能返回SQL输出参数的 大大的给分  分不够跟我说
前提  必须用BDE 的TStoredproc  控件 。。

解决方案 »

  1.   

    还是贴代码出来吧。BDE没用过
      

  2.   

    LSFK:Tstoredproc  
      LSFK.Active := false;
      self.LSFK.ParamByName('@CurYear').Value  := CurYear;
      self.LSFK.ParamByName('@StartMonth').Value  := StartMonth;
      self.LSFK.ParamByName('@EndMonth').Value := EndMonth;
      self.LSFK.ParamByName('@PsName').Value := PsNames;
      self.LSFK.ParamByName('@CheckAll').Value  := CheckAll;
      //self.LSFK.ParamByName('@ToTalFiles').Value := ToTalFiles;
      //self.LSFK.ParamByName('@ToTal_CBFiles').Value := ToTal_CBFiles;
     // self.LSFK.ParamByName('@ToTal_ZBFiles').Value := ToTal_ZBFiles;
      //self.LSFK.ParamByName('@ToTal_SYFiles').Value := ToTal_SYFiles;
      LSFK.Prepare;    
      LSFK.Open;
      LSFK.GetResults;
      ToTalFiles := (self.LSFK.ParamByName('@ToTalFiles').Value); 
      ToTal_CBFiles :=  self.LSFK.ParamByName('@ToTal_CBFiles').Value;
      ToTal_ZBFiles := self.LSFK.ParamByName('@ToTal_ZBFiles').Value;
      ToTal_SYFiles := self.LSFK.ParamByName('@ToTal_SYFiles').Value;
       这个也测过了  ToTalFiles := (self.LSFK.ParamByName('@ToTalFiles').AsInteger);
       
      

  3.   

    用  LSFK.ExecProc 用这个方法    连 结果集 都返回不了 
      

  4.   

    测试过,不行,估计与BDE控件本身的处理有关.一种这种的方式,就是将输出参数最为一列输出.select A.*, @output1 as OP1,@output2 as OP2
    from table 程序取数的时候,就直接FieldByName('OP1').Value
    因为都是同一个值!(当是需要考虑到结果集为空的情况)