【问题标题】:Calling SQL Stored Procedure with Output Parameter in VBScript在 VBScript 中使用输出参数调用 SQL 存储过程
【发布时间】:2012-04-18 13:25:55
【问题描述】:

我编写了一个 VBScript 函数来调用存储过程。过去,我编写了许多使用输入参数调用存储过程的函数,但在这种情况下,我需要使用输出参数。

在另一个应用程序中,我使用实体框架调用完全相同的存储过程,因此存储过程很好。

这是我的代码:

Function checkAccess(userid,link)
    isAllowed = false

    set cmd = Server.CreateObject("ADODB.Command")
    cmd.CommandText = "Check_Permission"
    cmd.ActiveConnection = Conn
    cmd.NamedParameters = true
    cmd.CommandType = adCmdStoredProc
    cmd.Parameters.Append(cmd.CreateParameter("@Login", adVarChar, adParamInput, 50, userId))
    cmd.Parameters.Append(cmd.CreateParameter("@LinkId", adInteger, adParamInput, 50, link))    
    cmd.Parameters.Append(cmd.CreateParameter("@IsAllowed", adBoolean, adParamOutput, 10, isAllowed))

    checkAccess = isAllowed
End Function

此函数始终返回 false。如何让它发挥作用?

【问题讨论】:

    标签: sql asp-classic vbscript adodb


    【解决方案1】:

    你应该返回你的输出参数的值:

    checkAccess = cmd.Parameters("@IsAllowed").Value
    

    另外,ADO 中的输出参数不需要初始值,adBoolean 参数不需要大小,因此您可以将最后一个参数更改为:

    cmd.Parameters.Append(cmd.CreateParameter("@IsAllowed", adBoolean, adParamOutput))
    

    你也可以去掉你的 isAllowed 变量,因为它不再需要了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      相关资源
      最近更新 更多