2012-04-04 8 views
6

में आउटपुट पैरामीटर के साथ एसक्यूएल संग्रहीत प्रक्रिया को कॉल करना मैंने संग्रहीत प्रक्रिया को कॉल करने के लिए एक वीबीस्क्रिप्ट फ़ंक्शन लिखा है। अतीत में, मैंने इनपुट पैरामीटर के साथ संग्रहीत प्रक्रियाओं को कॉल करने वाले कई फ़ंक्शन लिखे हैं, लेकिन इस उदाहरण में, मुझे आउटपुट पैरामीटर के साथ काम करने की आवश्यकता है।वीबीस्क्रिप्ट

किसी अन्य एप्लिकेशन में, मैं इकाई फ्रेमवर्क का उपयोग करके सटीक उसी संग्रहीत प्रक्रिया को कॉल करता हूं, इसलिए संग्रहीत प्रक्रिया ठीक है।

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 

इस समारोह हमेशा गलत रिटर्न:

यहाँ मेरी कोड है। मैं इसे काम करने लायक कैसे बनाऊ?

+0

कर्सर स्थान क्या है –

उत्तर

14

आप अपने उत्पादन पैरामीटर का मान लौटाना चाहिए:,

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

इसके अलावा, एडीओ में उत्पादन मानकों एक प्रारंभिक मूल्य और adBoolean मानकों की आवश्यकता नहीं है एक आकार की आवश्यकता नहीं है तो आप को बदल सकता है आपके पिछले पैरामीटर के लिए:

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

आप भी अपनी isAllowed चर से छुटकारा पाने सकते हैं, क्योंकि यह अब आवश्यक है।

संबंधित मुद्दे