में एक्सएमएल स्टेटमेंट के लिए टीएसक्यूएल से बड़े एक्सएमएल स्ट्रिंग को पढ़ें, एक्सएमएल के साथ एक एसक्यूएल कमांड है जो एसक्लस्ट्रिंग के रूप में एक एकल एक्सएमएल लौटाता है। मेरी समस्या लंबे एक्सएमएल स्ट्रिंग को .NET C# में पढ़ रही है।सी # .NET
निम्नलिखित केवल पहले 2033 वर्ण
SqlDataReader rdr = command.ExecuteReader();
if (rdr.HasRows)
{
rdr.Read();
Debug.WriteLine(rdr[0].ToString().Length.ToString());
}
मैं भी command.ExecuteScalar और rdr.GetString की कोशिश की है और अभी भी केवल पहले 2033 वर्ण प्राप्त पढ़ता है। मैंने इस प्रकार को बदल दिया है और यह अभी भी 2033 में छंटनी करता है, इसलिए यह खराब चरित्र के कारण होने की संभावना नहीं है। Rdr.GetSqlXml का प्रयास किया और एक त्रुटि संदेश प्राप्त करें SqlString को SqlCachedBuffer पर नहीं डाला जा सकता है।
यदि मैं 2033 से कम चरित्र को वापस करने के लिए SQL को सीमित करता हूं तो मुझे पूर्ण मान्य XML मिलता है। तो मुझे नहीं लगता कि यह एक एक्सएमएल पार्सिंग मुद्दा है बल्कि सिर्फ एक छंटनी है। मुझे किसी भी XML पार्सिंग की आवश्यकता नहीं है - यह TSQL कथन से मान्य XML है जिसे मुझे स्ट्रिंग के रूप में चाहिए।
मैं पूर्ण XML (पाठ के रूप में) कैसे पढ़ सकता हूं?
टीएसक्यूएल काम करता है।
select top 10 docSVsys.sID, docSVsys.docID
, (select top 10 value + '; '
from docMVtext with (nolock) where docMVtext.sID = docSVsys.sID
and docMVtext.fieldID = '113'
order by value FOR XML PATH('')) as [To]
from docSVsys with (nolock)
order by docSVsys.sID
for xml auto, root('documents')
एक्सएमएल पाथ के लिए जो मुझे चाहिए और तेज़ करता है। मैंने नियमित क्वेरी की कोशिश की और फिर Xdocument का उपयोग करके एक्सएमएल उत्पन्न किया लेकिन प्रदर्शन 100 से अधिक लाइनों के साथ भयानक है क्योंकि इसे जोड़ने के लिए एसआईडी पर खोज करने की आवश्यकता है। मुझे लगता है कि मैं एक्सएमएल ऑटो से बचने के लिए एसक्यूएल फ़ंक्शन के रूप में कॉन्सटेनेशन लिख सकता हूं लेकिन फॉर एक्सएमएल के साथ यह क्वेरी तेज़ है और मुझे आवश्यक सटीक परिणाम प्रदान करता है। यह परिणाम कैसे प्राप्त करने के लिए है?
क्या आप वाकई एसक्यूएल सही डेटा देता हैं लगता है? – gbn
ExecuteXmlReader का उपयोग करें: http://support.microsoft.com/kb/310378 –
इसके अलावा, यह अनिवार्य रूप से वही है: http://stackoverflow.com/questions/5423980/how-do-i-return-xml-from -ए-संग्रहित प्रक्रिया –