मेरे पास how to check if you are in a transaction पर समान प्रश्न है। जांच करने के बजाय, मैं नेस्टेड लेनदेन की अनुमति कैसे दूं?मैं एडीओ.NET और SQL सर्वर के साथ नेस्टेड लेनदेन कैसे सक्षम करूं?
मैं ADO.NET के साथ Microsoft SQL Server डेटाबेस का उपयोग कर रहा हूं। मैंने टी-एसक्यूएल का उपयोग करके उदाहरण और लेनदेन नामों का उपयोग करके लेनदेन शुरू करने वाले उदाहरण देखे हैं। जब connection.BeginTransaction बुला, मैं एक ही सिलसिले में एक और फ़ंक्शन को कॉल करें, और यह BeginTransaction फिर जो मुझे अपवाद देता है कॉल:
SqlConnection does not support parallel transactions.
यह कई माइक्रोसॉफ्ट वेरिएंट इसकी अनुमति देने के लिए प्रकट होता है, लेकिन मैं कैसे को समझ नहीं सकता इसे मेरी। एमडीएफ फ़ाइल के साथ करें।
मैं सी # और ADO.NET का उपयोग कर Microsoft SQL सर्वर डेटाबेस के साथ नेस्टेड लेन-देन की अनुमति कैसे दूं?
मेरा होस्ट कहता है कि वे 'माइक्रोसॉफ्ट एसक्यूएल 2008' पेश करते हैं। क्या यह टी-एसक्यूएल है? यदि टी-एसक्यूएल कहां से नहीं आता है? मैं केवल बाहरी लेनदेन की गणना करना चाहता हूं। क्या 'माइक्रोसॉफ्ट एसक्यूएल 2008' इस अनुमति नहीं देता है? (शायद इसे अपवाद फेंकने के लिए कॉन्फ़िगर करने के लिए?) –
टी-एसक्यूएल SQL सर्वर के माइक्रोसॉफ्ट का संस्करण है जो SQL सर्वर के सभी संस्करणों में चलता है। यदि आप इस अपवाद से बचना चाहते हैं, तो पहले लेनदेन को वापस करने या रोल करने से पहले 'BeginTransaction' को कॉल करने से बचें - यदि कोई लेनदेन अभी भी लंबित है तो आप लेनदेन नहीं कर सकते हैं। मैं आपको अपने आप को प्रबंधित करने की कोशिश करने के बजाय ट्रांज़ेक्शनस्कोप (http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope(VS.80).aspx) का उपयोग करने पर एक नज़र डालने की सलाह देता हूं। –
हम्म, यह वही बात नहीं है। इस कोड का उपयोग एसक्लाइट के साथ किया गया था और मुझे यकीन नहीं है कि अगर इसका समर्थन किया जाता है (ऐसा इसलिए हो सकता है क्योंकि यह सभी ado.net का समर्थन करता है)। लेकिन यह अजीब लगता है, अगर टी-एसक्यूएल एसक्यूएल सर्वर के सभी संस्करणों में है तो क्या मेरे पास यह नहीं होना चाहिए और इसे अनुमति नहीं दी जानी चाहिए? वह एक सुविधा मेरी जिंदगी को आसान बना देगी। हालांकि यह केवल एक ही फ़ंक्शन है जो इसका उपयोग करता है (मुझे लगता है कि मैं इसे केवल इनिट पर ही नष्ट कर सकता हूं, जहां तक केवल एक कनेक्शन का उपयोग नहीं किया जाता है।) –