在cmd.execute()这一行出错;提示为odbc错误, 估计是调用参数或者数据类型的问题

解决方案 »

  1.   

    <%
    '设置conn
    set conn=server.createobject("adodb.connection")
    connstr="driver={sql server};server=wj;database=oa_starsoft;uid=sa;pwd="
    conn.open connstr <---------- 这里有没有错?!'设置command对象
    set cmd=server.createobject("adodb.command")
    cmd.activeconnection=conn
    cmd.commandtext="dbo.sp_user" <--------这里!!去掉dbo.,换成sp_user
    cmd.commandtype=4'创建parameter
    id=1
    cmd.parameters.append cmd.createparameter("@user_id",72,1,,id)
    cmd.parameters.append cmd.createparameter("@user_username",200,2,50)
    cmd.parameters.append cmd.createparameter("@user_userpwd",200,2,50)
    cmd.parameters.append cmd.createparameter("@user_userdept",200,2,50)
    cmd.parameters.append cmd.createparameter("@user_userlevel",200,2,50)
    cmd.parameters.append cmd.createparameter("@user_userstate",11,2,1)
    cmd.execute()
    response.write (id&cmd.parameters(1)&cmd.parameters(2)&cmd.parameters(3)&cmd.parameters(4)&cmd.parameters(5))
    set command=nothing
    conn.close
    set conn=nothing
    %>
    还在保证你的存储过程在查询分析器中调试通过!
    如果还有错的话,贴出出错信息!
      

  2.   

    cmd.parameters.append cmd.createparameter("@user_id",72,1,,id)
                                                              ~多个逗号cmd.parameters.append cmd.createparameter("@user_username",200,2,50)
                                                               ~50用""
    下同另外你的存储过程能在查询分析器中运行吗
      

  3.   

    有几个问题:
    1。为什么用这么多的OUTPUT,如果在一个SELECT中返回那么多的参数,那你就把它作为一个RS处理就可以了。
    2。如果用你这个程序,在查询分析器中是不能看到运行结果的,因为结果都被变量接收了,在查询分析器什么都不返回。
      

  4.   

    把语句改为select username,userpwd, userdept, userlevel, userstate from oa_user where id=@user_id
    就可以在SQL查询分析器中看到结果了。