2011-08-08 13 views
15

पैरामीटर के रूप में फ़ंक्शंस और सबराउटिन का उपयोग करने के लिए एएसपीनेट कोड (VB.net) माइग्रेट करना। एमएस सर्वर प्रबंधन स्टूडियो का उपयोग करने के लिए कहा गया कार्य और सबस। वेब पेज के माध्यम से परीक्षण करने से पहले एमएस एसएमएस के भीतर से कार्यों का परीक्षण करना चाहते हैं। यहां एक उदाहरण है। मैं एक समारोह "dbo.getNumber"एसक्यूएल वैरिएबल में फ़ंक्शन परिणाम असाइन करना और

मैं का उपयोग कर इसे परीक्षण करने के लिए कोशिश कर रहा हूँ कहा जाता है का कहना है कि निम्नलिखित:

USE [someDB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
declare @value int; 

select @value = dbo.getNumber; 

print @value; 
go 

जब मैं F5 टाइप करें ("क्वेरी" चलाने के लिए) इसे निम्न संदेश देता है :

"इस संदर्भ में" dbo.getNumber "नाम की अनुमति नहीं है। मान्य अभिव्यक्ति स्थिरांक, निरंतर अभिव्यक्तियां, और (कुछ संदर्भों में) चर हैं। कॉलम नामों की अनुमति नहीं है।"

फ़ंक्शन dbo.getNumber को ठीक से स्वीकार किया गया था, बीटीडब्ल्यू। (यह कुछ मानदंडों को पूरा करने वाले डेटाबेस के रिकॉर्ड की गणना कर रहा है।)

उम्मीद है कि आप गैर-काम करने वाले कोड से अनुमान लगा सकते हैं कि मैं क्या करने की कोशिश कर रहा हूं।

मैं एसएमएस के भीतर से किसी फ़ंक्शन (परीक्षण उद्देश्यों के लिए) का मूल्य कैसे प्रिंट कर सकता हूं? जेम्स जॉनसन के अनुसार

सही समाधान है, नीचे:

USE [someDB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
declare @value int; 

select @value = dbo.getNumber(); 

print @value; 
go 

नोट समारोह मंगलाचरण के लिए कोष्ठक। नोट भी: एसएमएस में इंटेलिजेंस dbo.getNumber() को रेखांकित करता है जैसे कि यह एक त्रुटि थी, लेकिन F5 कार्यों के साथ क्वेरी चला रहा है और सही परिणाम आउटपुट करता है।

उत्तर

35

आप इसे इस तरह कॉल करने की आवश्यकता:

select @value = dbo.getNumber() 
+0

यह है कि। धत तेरे की। (इसे 7 मिनट के लिए स्वीकार नहीं कर सकता, लेकिन मैं करूँगा)। मैं इस तथ्य से थोड़ा उलझन में था कि यह रेखांकित किया गया था कि यह गलत था, इससे कोई फर्क नहीं पड़ता कि मैंने क्या किया। धन्यवाद! – elbillaf

+0

खुशी है कि यह काम किया। जवाब के रूप में इसे चुनने की सराहना करें :) –

+0

+1 आशा है कि मैंने आपका दिन बनाया !! – Mukus

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