2012-04-04 33 views
6

ストアドプロシージャを呼び出すためのVBScript関数を作成しました。過去には、入力パラメータを持つストアドプロシージャを呼び出すいくつかの関数を記述しましたが、この例ではOutputパラメータを使用する必要があります。VBScriptの出力パラメータを使用したSQLストアドプロシージャの呼び出し

別のアプリケーションでは、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を返します。私はそれをどのように機能させるのですか?

+0

カーソル位置とは –

答えて

14

あなたの出力パラメータの値を返す必要があります:あなたが変更できるよう

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

また、ADOでの出力パラメータは、初期値とadBooleanパラメータのサイズを必要としないを必要としません。最後のパラメータ:

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

isAllowed変数が不要になったため、これを取り除くこともできます。

関連する問題