2011-01-19 16 views
26

मैं कुछ सी # कोड डिबग कर रहा हूं जो SQL सर्वर में संग्रहीत प्रो (TSQL) को कॉल करने के लिए Ado.net का उपयोग करता है। मैं संग्रहीत प्रो में कैसे कदम रख सकता हूं?मैं अपने सी # कोड से SQL सर्वर संग्रहीत प्रो में कैसे कदम उठा सकता हूं?

(मुझे लगता है कि मैं इस माइक्रोसॉफ्ट कर्मचारियों द्वारा डेमो देखा है, लेकिन 101 "जादू" सेटिंग है कि यह काम करने के लिए प्राप्त करने के लिए की जरूरत है याद नहीं कर सकते हैं।)

उत्तर

13

मैं डेविड के जवाब और इसे करने के लिए इयान की टिप्पणी पर निर्माण करेंगे, क्योंकि वह वास्तव में प्रक्रिया मैं माध्यम से चले गए थे।

धारणा: जवाब VS2008 & VS2010 पर आधारित है।

एसक्यूएल सर्वर पर एक T-SQL संग्रहित प्रक्रिया के माध्यम से कदम करने के लिए, जबकि आप निम्न कार्य करने होंगे एक .NET अनुप्रयोग डिबगिंग:

  1. एमएस समर्थन निर्देश "How to debug stored procedures in Visual Studio .NET (विकल्प 2)" का पालन करें

    • सुनिश्चित करें कि आप परियोजना के गुण (लिंक किए गए निर्देशों में 4 चरण) में एसक्यूएल सर्वर डिबगिंग सक्षम है।
    • आप संग्रहीत प्रक्रिया ही (कदम 6-7)
  2. सक्षम डेटा कनेक्शन जिस पर संग्रहीत प्रक्रिया कहा जाता है पर एसक्यूएल/CLR डिबगिंग की अनुमति दें में एक ब्रेकप्वाइंट निर्धारित किया है सुनिश्चित करें:

    • (इस दूसरे चरण के लिए आप हो रही हो जाएगा बिना "ब्रेकप्वाइंट वर्तमान में मारा नहीं किया जाएगा। इस समय एसक्यूएल breakponit बाध्य करने में असमर्थ। लोड नहीं ब्रेकप्वाइंट युक्त वस्तु।" आर के रूप में
    • कनेक्शन पर है कि आप कोड में उपयोग कर रहे हैं
    • टिक अनुमति दें एसक्यूएल/CLR डिबगिंग मेनू में विकल्प राइट-क्लिक करें इयान द्वारा)
    • सर्वर एक्सप्लोरर> डेटा कनेक्शन eported

टिप्पणियों से जोड़ा गया: (यह हो रही करने के लिए महत्वपूर्ण होने लगते हैं यह काम करने के लिए)

यह प्रोग्रामेटिक रूप से बनाए गए कनेक्शन के साथ भी काम करता है।आपको बस सटीक समान कनेक्शन स्ट्रिंग का उपयोग करना होगा जो सर्वर इंस्टेंस पर राइट-क्लिक करते समय प्रदर्शित होता है, 'गुण' पर क्लिक करें और 'कनेक्शन स्ट्रिंग' (जर्मन में Verbindungszeichenfolge) पर स्क्रॉल करें।

+0

यदि कोड में ऐप द्वारा डेटा कनेक्शन बनाया गया है तो क्या होगा। –

+0

@ इयान अच्छा बिंदु। मुझे सोमवार को चारों ओर खोदने दो .. –

+2

@Ian मुझे डर है कि आपको सर्वर एक्सप्लोरर में सूचीबद्ध कनेक्शन का उपयोग करना होगा। प्रासंगिक दस्तावेज में से कोई भी नहीं और न ही वीएस में चारों ओर पोकिंग से पता चलता है कि प्रोग्रामेटिक रूप से बनाए गए कनेक्शन के लिए ऐसा करना संभव होगा। तो कम से कम डीबग/परीक्षण उद्देश्यों के लिए आपको एक सूचीबद्ध कनेक्शन की आवश्यकता होगी। –

1

परियोजना संपत्तियों में एसक्यूएल सर्वर डीबगिंग सक्षम ।

+0

क्षमा करें मैंने इसे बांध लिया है, और विजुअल स्टूडियो केवल संग्रहित प्रो –

+0

में कदम उठाने के बजाय ExecuteReader() पर कॉल पर कदम उठाता है, मुझे लगता है कि संग्रहीत प्रक्रिया में डीबग करने के लिए आपको डीबग अनुमति की आवश्यकता है, क्या SQL सर्वर आपके ऊपर चल रहा है स्थानीय कंप्यूटर? –

+1

@ जेडब्ल्यू। यदि सर्वर एक्सप्लोरर से एक संग्रहित प्रो चयनित है तो मैं इसमें कदम उठा सकता हूं। –

0

समाधान एक्सप्लोरर में, प्रोजेक्ट पर राइट-क्लिक करें (समाधान नहीं) और प्रॉपर्टी पेज खोलें। पेड़ में कॉन्फ़िगरेशन गुण क्लिक करें और फिर संग्रहित प्रक्रिया डीबगिंग सक्षम करने के लिए डीबगिंग पृष्ठ पर SQL सर्वर डिबगिंग चेक बॉक्स का चयन करने के लिए क्लिक करें।

संदर्भ: http://support.microsoft.com/kb/316549

+0

जब मुझे संग्रहीत प्रो में ब्रेक पॉइंट सेट करना पड़ा तो मुझे "ब्रेकपॉइंट वर्तमान में हिट नहीं किया जाएगा। इस समय एसक्यूएल ब्रेकपोनिट को बाध्य करने में असमर्थ। ब्रेकपॉइंट युक्त ऑब्जेक्ट लोड नहीं हुआ।" –

6

आप में से उन लोगों के लिए जो वीएस 2012 का उपयोग कर रहे हैं और आप इस बारे में भ्रमित हैं कि आप सर्वर एक्सप्लोरर विंडो से SQL/CLR डिबगिंग को सक्षम क्यों नहीं कर सकते हैं, आपको वास्तव में "SQL सर्वर ऑब्जेक्ट एक्सप्लोरर" विंडो के माध्यम से कनेक्ट करने की आवश्यकता है। एक बार आपके पास उस विंडो में कनेक्शन हो जाने के बाद, "SQL/CLR डिबगिंग की अनुमति दें" और "एप्लिकेशन डिबगिंग" सेटिंग आपके डेटाबेस के राइट-क्लिक संदर्भ मेनू पर दिखाई देती है। यह शायद 2013 पर भी लागू होता है लेकिन मैं पुष्टि नहीं कर सकता।

+0

मुझे वीएस 2013 में 'एसक्यूएल सर्वर ऑब्जेक्ट एक्सप्लोरर' में उन सेटिंग्स मिलीं, लेकिन फिर भी यह संदेश मिलता है कि ब्रेकपॉइंट वर्तमान में हिट नहीं होगा। – CoderDennis

+0

धन्यवाद! इसने वीएस 2015 में मेरे लिए समस्या हल की। – EM0

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