2015-03-16 3 views
15

SqlCommand कक्षा में Cancel विधि है, जो दस्तावेज़ के अनुसार, एक आदेश को रद्द करने की अनुमति देता है।सर्वरकनेक्शन। कैंसल विधि

मैं smo Server class के माध्यम से निष्पादित आदेशों के लिए समकक्ष विधि की तलाश में हूं। ServerConnection वर्ग (सर्वर वर्ग का कनेक्शन कॉन्टेक्स्ट फ़ील्ड) has a Cancel method लेकिन दस्तावेज़ यह नहीं करता कि यह क्या करता है।

+4

मैं एसएमओ से बचने की सलाह देता हूं। इसमें पूरी तरह से थ्रेड सुरक्षित नहीं होने सहित समस्याओं की पूरी मेजबानी है। मैंने इसे फेंक दिया और 'sys.' विचारों के साथ सबकुछ किया। –

+0

शायद आप सर्वर कनेक्शन को डिस्कनेक्ट करना चाहते हैं? https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.common.connectionmanager.disconnect – Chuck

+1

एसक्यूएल प्रोफाइलर यह स्पष्ट नहीं करता है कि यह क्या करता है। जो कुछ भी करता है, वह SQL प्रोफाइलर में लॉगआउट ईवेंट के रूप में दिखाई नहीं देता है, या कुछ और जिसे मैं समझ सकता हूं। मैं कनेक्शन रद्द कर सकता हूं और फिर जारी रख सकता हूं कि मैं किसी भी त्रुटि को फेंक दिए बिना क्या कर रहा था। मैं जोनाथन एलन के साथ हूँ। एसएमओ के बिना करो। – quest4truth

उत्तर

1

SeverConnection.Cancel() विधि इसी तरह काम करता है SqlCommand.Cancel() विधि के लिए और Documentation कहता है:

अगर वहाँ रद्द करने के लिए कुछ भी नहीं है, कुछ भी नहीं होता है। हालांकि, यदि प्रक्रिया में कोई आदेश है, और रद्द करने का प्रयास विफल रहता है, तो कोई अपवाद उत्पन्न नहीं होता है।

कुछ में, दुर्लभ, मामलों, अगर आप ExecuteReader फोन फिर बंद बुला रद्द करने से पहले फोन (implicitily या स्पष्ट रूप से), और फिर फोन रद्द, रद्द आदेश एसक्यूएल सर्वर के लिए नहीं भेजा जाएगा और परिणाम सेट कर सकते हैं बंद करने के बाद स्ट्रीम करना जारी रखें। इससे बचने के लिए, सुनिश्चित करें कि आप पाठक को बंद करने से पहले रद्द करें या कनेक्शन।

मतलब है कि रद्द विधि काम करेगी, आप close() विधि करने के लिए कॉल करने से पहले इसे कहते हैं।

आप के बाद इसे कहते हैं, आदेश एसक्यूएल में जिसके परिणामस्वरूप के लिए नहीं भेजा जाएगा एसक्यूएल करने के लिए धारा जारी है close() विधि कॉल करने के बाद।

इसके अलावा, अगर वहाँ की प्रक्रिया में एक आदेश है और रद्द करने के लिए प्रयास विफल रहता है, तो आपको एक त्रुटि के रूप में भी इसका अपवाद नहीं इस तरह के मामले में उत्पन्न होता है प्राप्त नहीं होगा।

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