2012-03-30 7 views
5

जहां .NET सिस्टम में। डेटा नामस्थान कोड निर्धारित करता है, जब अद्यतन-आदेश निष्पादित किया जाता है, चाहे कोई पंक्ति हो क्लाइंट प्रोग्राम ने इसे पढ़ने के बाद एक SQL सर्वर 2K तालिका बदल दी है, यानी कि पंक्ति का क्लाइंट-साइड संस्करण "पुराना" है?.NET System.Data नेमस्पेस डीकंपिलेशन: SQL सर्वर समवर्ती उल्लंघन से संबंधित कोड कहां मिल सकता है

मैं कोड को देखने के लिए एक डिकंपेलर का उपयोग करना चाहता हूं और यह पता लगाता हूं कि यह कैसे निर्धारित करता है कि एक समवर्ती उल्लंघन हुआ है। मुझे पता है कि इसमें तालिका में टाइमस्टैम्प कॉलम और/या @@ rowcount के साथ कुछ करना होगा, लेकिन मैं यह देखना चाहता हूं कि संग्रहीत प्रो में लिपटे एक अद्यतन कमांड को लाइब्रेरी द्वारा निष्पादित किया गया है या नहीं।

संग्रहीत proc इस संरचना होगा:

   create proc foo_update 
       @id int, 
       @rowversion timestamp, 
       @val varchar(5) 
       as 
       begin 
        update foo set a = @val 
        where id = @id and mytimestampcolumn = @rowversion; 
       end 

है, तो कोई पंक्ति अगर यह जहां-खंड जो क्लाइंट साइड System.Data में rowversion तुलना की वजह से बदल गया है अद्यतन किया जाएगा कि। डेटाबेस में पंक्ति के टाइमस्टैम्प मान पर DataRow, और proc सफलतापूर्वक चलाएगा और त्रुटि उत्पन्न नहीं करेगा। फिर भी एसक्ल क्लाइंट पुस्तकालय, उनकी सहायकता में, इस परिदृश्य को एक समवर्ती उल्लंघन के रूप में रिपोर्ट करते हैं।

धन्यवाद

+0

क्या आप 'SqlDataAdapter' का उपयोग कर रहे हैं? आप इसे कैसे बुला रहे हैं इस स्रोत कोड को ढूंढकर आप क्या हासिल करना चाहते हैं, समवर्ती उल्लंघन त्रुटि को बाईपास करें? –

+0

@ जॉर्डनो: मैं देखना चाहता था कि त्रुटि को फेंकने के लिए कौन सी स्थितियां जरूरी थीं, यानी, लाइब्रेरी टाइमस्टैम्प मानों की तुलना कर रही थी, या बस प्रभावित रिकॉर्ड्स की संख्या को देख रही थी। – Tim

उत्तर

0

मुझे System.Data.Common.DbDataAdapter.cs में प्रासंगिक कोड मिला - प्रभावित रिकॉर्ड की संख्या शून्य होने पर समेकन उल्लंघन बढ़ाया जाता है।

2
इसके बजाय decompiler का उपयोग करने का

, वास्तविक कोड पर नज़र डालें। विवरण के लिए निम्नलिखित ब्लॉग पोस्ट देखें। http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx

+0

अभी तक, 'डाउनलोड स्रोत कोड' लिंक खोजने में असमर्थ। – Tim

+1

इसे मिला: http://referencesource.microsoft.com/netframework.aspx – Tim

+0

@ एटिला ओज़गुर: सहायता के लिए धन्यवाद। मुझे खोजने के लिए वास्तविक स्रोत कोड होने के बाद अंत में मुझे जवाब दिया। मुझे लगता है कि एसओ वेबसाइट ने आपको 50% बकाया राशि से स्वचालित रूप से सम्मानित किया है। – Tim

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