Вызов хранимой процедуры SQL с выходным параметром в VBScript

Я написал функцию VBScript для вызова хранимой процедуры. В прошлом я написал несколько функций, вызывающих хранимые процедуры с входными параметрами, но в этом случае мне нужно работать с выходным параметром.

в другом приложении я вызываю точно такую же хранимую процедуру с помощью Entity Framework, поэтому хранимая процедура в порядке.

вот мой код:

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. Как я заставить его работать?

1 ответов


вы должны вернуть значение параметра выход:

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

кроме того, выходные параметры в ADO не требуют начального значения, а параметры adBoolean не требуют размера, поэтому вы можете изменить свой последний параметр на:

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

вы также можете избавиться от своей переменной isAllowed, так как она больше не нужна.