你的语句有点问题!
creat procedure test
@rtn varchar(2),    /*不需要output,如果在另一个过程中要用,才需要output*/ 
@reccount int ,
@machine_code varchar(24) ,
@line_no varchar(2)
as
select @reccount = count(*) from machine_code where line_no = @line_no
if @reccount > 0 
    begin   
      select @rtn = -1
      select @machine_code = machine_code from machine_code where line_no
              =@line_no 
    end 
else 
     select @rtn = 1
/*加上输出,把这三个输出就当成是表的列名*/
select machine_code=@machine_code,recount=@recount,rtn=@rtnasp这样调用:
set rs_callsp = server.createobject("adodb.recordset")
rs_callsp.open strsql,connection,1
response.wirte rs_callsp("rtn") 
response.wirte rs_callsp("reccount") 
   

解决方案 »

  1.   

    command.parameters.append command.createparameter("@parameter_name",adParameterType,
    adParamOutput)
    ^^^^^^^^^^^^^
      

  2.   

    使用ULTRADEV吧,太爽了!这类似这种问题的代码不用自己写!CREATE Procedure sp_createbasket (@idshopper int,@idbasket int output)
    As
    insert into basket (idshopper) values(@idshopper);
    select @idbasket=@@identity;
    return 
    上面是存储过程,下面是使用代码,下面的代码是ULTRADEV产生的。
    Set Cmdidbasket = Server.Createobject("Adodb.Command")
      Cmdidbasket.Activeconnection = "dsn-自己更改吧"
      Cmdidbasket.Commandtext = "Dbo.Sp_Createbasket"
      Cmdidbasket.Parameters.Append Cmdidbasket.Createparameter("Return_Value", 3, 4)
      Cmdidbasket.Parameters.Append Cmdidbasket.Createparameter("@Idshopper", 3, 1,5,Cmdidbasket__Idshopper)
      Cmdidbasket.Parameters.Append Cmdidbasket.Createparameter("@Idbasket", 3, 2)
      Cmdidbasket.Commandtype = 4
      Cmdidbasket.Commandtimeout = 0
      Cmdidbasket.Prepared = True
      Cmdidbasket.Execute()
      Session("Idbasket")=Cmdidbasket("@Idbasket")
      

  3.   

    to wildhorse01:
      ULTRADEV是什么东东呀,可以发一份给我?
    OICQ:7552667
       
      

  4.   

    存储过程没问题。在ASP里当然应该用command来执行一个存储过程。
      

  5.   

    建立一个测试表:
    create table tt12 (a1 varchar(1),a2 varchar(2))
    insert tt12 values('1','2')
    select a1,a2 from tt12
    结果:
    a1   a2   
    ---- ---- 
    1    2建立存储过程:
    create proc check_tt12 (@a1 varchar(1),@valid binary output)
    as
    if exists(select * from tt12 where a1=@a1)
    select @valid=1
    else
    select @valid=0联合测试:
    declare @valid binary
    exec check_tt12 @valid output,'0'
    select @valid
    exec check_tt12 @valid output,'1'
    select @valid联合测试结果:
    ---- 
    0x00(1 row(s) affected)     
    ---- 
    0x01(1 row(s) affected) 
    注:以上测试在T-SQL中运行(我更喜欢QuaryAnalyzer)这样在asp中建立数据库连接后可用如下语句来调用
    db.execute("check_tt12 '1',<asp变量>")
    运行后asp变量被赋值!老兄,sql的book online都没我这个详细.努力吧.其实数据库最难的的结构化和完整性设计.我认为.
      

  6.   

    对了.忘了对你说,如果你是一个追求完美并且有点洁癖的人,千万不要用什么DEV之类的.
    用个好一点的文本编辑器写脚本.比如UltraEdit!