2012-04-04 2229 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

什麼是光標位置 – 2012-04-04 19:33:09

回答

14

你應該回到你的輸出參數的值:

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

此外,在ADO輸出參數不需要初始值和adBoolean參數不需要大小,所以你可以改變你的最後一個參數爲:

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

你也可以去掉你的isAllowed變量,因爲它不再需要。

相關問題