本帖最后由 doubagui 于 2010-07-22 15:13:11 编辑

解决方案 »

  1.   

    你的这个写的很乱,试试sql.add('exec SF_XH_QS '+QH+',:XH1 OUTPUT,:XH2 OUTPUT, ');Form1.edit1.Text:=adoquery1.Parameters.Items[0].Value;
    Form1.edit2.Text:=adoquery1.Parameters.Items[1].Value;自己按照这个修改下
      

  2.   

    sql.add('exec SF_PL3XH_QS '+QH+','+XH1+' OUTPUT,'+XH2+' OUTPUT, ');
       sql.add(' '+XH3+' OUTPUT,'+XH4+' OUTPUT,'+XH5+' OUTPUT,'+XH6+' OUTPUT,'+XH7+' OUTPUT,'+XH8+' OUTPUT,'+XH9+' OUTPUT,'+XH10+' OUTPUT, '+XH11+' OUTPUT, ');
       sql.add(' '+XH12+' OUTPUT,'+XH13+' OUTPUT,'+XH14+' OUTPUT,'+XH15+' OUTPUT,'+XH16+' OUTPUT,'+XH17+' OUTPUT,'+XH18+' OUTPUT,'+XH19+' OUTPUT,'+XH20+' OUTPUT ');
      

  3.   

    sql.add('exec SF_PL3XH_QS '+QH+',:XH1 OUTPUT,:XH2 OUTPUT, ');
       sql.add(' :XH3 OUTPUT,:XH4 OUTPUT,:XH5 OUTPUT,:XH6 OUTPUT,:XH7 OUTPUT,:XH8 OUTPUT,:XH9 OUTPUT,:XH10 OUTPUT, :XH11 OUTPUT, ');
       sql.add(' :XH12 OUTPUT,:XH13 OUTPUT,:XH14 OUTPUT,:XH15 OUTPUT,:XH16 OUTPUT,:XH17 OUTPUT,:XH18 OUTPUT,:XH19 OUTPUT,:XH20 OUTPUT ');
      

  4.   

    XH1-XH20为输出参数,想把这些数据赋给TEDIT1-TEDIT20显示
      

  5.   

    看半天代码,晕死,你用delphi的变量来存SQL的返回值?.....
      

  6.   

    SQL返回都是表结构,就算它返回一个值也是一个单列、单行的表。
    你通过delphi变量组合sql语句做法是正确的,但是取返回值必须在ADOQuery1里面取。
    另外要确认你的存储过程有返回。
      

  7.   

    存储过程后面的:
      select
      @XH1=XH1,@XH2=XH2,@XH3=XH3,@XH4=XH4,@XH5=XH5,
      @XH6=XH6,@XH7=XH7,@XH8=XH8,@XH9=XH9,@XH10=XH10,
    刚成:
      select
      XH1=@XH1,...就返回一个字段为:xh1,xh2...的表,否则没有返回。
      

  8.   

    存储过程有返回值,
    USE LETOUCAI                    
    DECLARE @XH1 NVARCHAR(3),@XH2 NVARCHAR(3),@XH3 NVARCHAR(3),@XH4 NVARCHAR(3),@XH5 NVARCHAR(3),
    @XH6 NVARCHAR(3),@XH7 NVARCHAR(3),@XH8 NVARCHAR(3),@XH9 NVARCHAR(3),@XH10 NVARCHAR(3),
    @XH11 NVARCHAR(3),@XH12 NVARCHAR(3),@XH13 NVARCHAR(3),@XH14 NVARCHAR(3),@XH15 NVARCHAR(3),
    @XH16 NVARCHAR(3),@XH17 NVARCHAR(3),@XH18 NVARCHAR(3),@XH19 NVARCHAR(3),@XH20 NVARCHAR(3)
    EXEC SF_XH_QS 10194,
    @XH1 OUTPUT,@XH2 OUTPUT,@XH3 OUTPUT,@XH4 OUTPUT,@XH5 OUTPUT,
    @XH6 OUTPUT,@XH7 OUTPUT,@XH8 OUTPUT,@XH9 OUTPUT,@XH10 OUTPUT,
    @XH11 OUTPUT,@XH12 OUTPUT,@XH13 OUTPUT,@XH14 OUTPUT,@XH15 OUTPUT,
    @XH16 OUTPUT,@XH17 OUTPUT,@XH18 OUTPUT,@XH19 OUTPUT,@XH20 OUTPUT
    select @XH1,@XH2
    可以显示@XH1,@XH2的返回值
      

  9.   

    之所以要
    select
      XH1=@XH1,...
    就是为了取得字段名。
    你使用select @XH1,@XH2 ,字段名知道是什么吗? mssql自动默认的是Expr1、Expr2....但是不好操作啊。