SQL调用VBScript中的输出参数存储过程 [英] Calling SQL Stored Procedure with Output Parameter in VBScript
问题描述
我写了一个VBScript函数来调用存储过程。在过去,我已经写了一些调用带有输入参数的存储过程的功能,但是在这种情况下,我需要一个输出参数的工作。
在其他应用程序,我称之为使用实体框架完全相同的存储过程,所以存储过程是好的。
下面是我的code:
函数的checkAccess(用户ID,链接)
isAllowed = FALSE 设置CMD =的Server.CreateObject(ADODB.Command)
cmd.CommandText =Check_Permission
cmd.ActiveConnection =康恩
cmd.NamedParameters =真
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append(cmd.CreateParameter(@登录,adVarChar,adParamInput,50,用户id))
cmd.Parameters.Append(cmd.CreateParameter(@ LINKID,adInteger,adParamInput,50,链接))
cmd.Parameters.Append(cmd.CreateParameter(@ IsAllowed,adBoolean,adParamOutput,10,isAllowed)) 的checkAccess = isAllowed
结束功能
块引用>这个函数总是返回false。我如何工作的?
解决方案您应该回到你的输出参数的值:
的checkAccess = cmd.Parameters(@ IsAllowed)。价值
此外,在ADO输出参数不需要初始值和adBoolean参数不需要大小,所以你可以你的最后一个放慢参数更改为:
cmd.Parameters.Append(cmd.CreateParameter(@ IsAllowed,adBoolean,adParamOutput))
您也可以摆脱你isAllowed变量,因为它不再是必要的。
I've written a VBScript function to call a stored procedure. In the past, I've written a number of functions calling stored procedures with input parameters, but in this instance, I need to work with an Output parameter.
In another application, I call the exact same stored procedure using the Entity Framework, so the stored procedure is fine.
Here's my code:
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
This function always returns false. How do I make it work?
解决方案You should return the value of your output parameter:
checkAccess = cmd.Parameters("@IsAllowed").Value
Also, output parameters in ADO don't require an initial value and adBoolean parameters don't require a size, so you could change your the last paramter to:
cmd.Parameters.Append(cmd.CreateParameter("@IsAllowed", adBoolean, adParamOutput))
You could also get rid of your isAllowed variable since it is no longer necessary.
这篇关于SQL调用VBScript中的输出参数存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!