2011-04-28 9 views
12

क्या SqlDbType varBinary (अधिकतम) के लिए नक्शे? SqlDbType.VarBinary कहते हैं कि यह 8K तक सीमित है। एसक्यूएल सर्वर प्रलेखन का कहना है कि varbinary (अधिकतम) aprrox स्टोर कर सकते हैं। 2GB। लेकिन एसकएलडीबी टाइप। वर्बिनरी का कहना है कि यह 8 के लिए सीमित है।
क्या एसक्यूएलडीबी टाइप नक्शा varBinary (अधिकतम) के लिए?

उत्तर

21

SqlDbType.VarBinary -1 VARBINARY के बराबर (मैक्स), कम से कम सिद्धांत में है। लेकिन समस्या थोड़ा अधिक जटिल है, क्योंकि एक प्रकार भी है (एक enum मान नहीं), अर्थात् SqlTypes.SqlBytes जिसका उपयोग किया जा सकता है। और SqlTypes.SqlFileStream है जिसका उपयोग VARBINARY(MAX) प्रकारों के लिए भी किया जा सकता है, जब उनके पास FILESTREAM विशेषता होती है।

लेकिन समस्या यह है कि इनमें से कोई भी enums या प्रकार ADO.Net: स्मृति खपत में VARBINARY(MAX) कॉलम के साथ काम करने के साथ वास्तविक समस्या को कवर करता है। इन सभी प्रकारों, जब 'आउट ऑफ़ द बॉक्स' का उपयोग किया जाता है, वे मेमोरी में एक सरणी के रूप में आवंटित मूल्य की प्रतियां बनाएंगे, जो कि सबसे अच्छा असरदार है, लेकिन क्योंकि सामग्री बड़ी हो जाती है, इसका उपयोग करना असंभव हो जाता है क्योंकि आवंटन विफलता ।

: मैं लेख है कि स्ट्रीमिंग का अर्थ विज्ञान है कि संपूर्ण सामग्री के नि: स्मृति प्रतियां के निर्माण से बचने का उपयोग कर ADO.Net में VARBINARY(MAX) मानों का प्रबंधन कैसे उचित तरीके से दिखाने की एक जोड़ी है
+1

मैंने -1 का उपयोग किया और यह ठीक काम करता है – Abacus

+0

वास्तव में अजीब बात है कि उपरोक्त मेरे लिए काम नहीं करता है। मुझे लिखना था: dtProducts.Columns.Add (नया डेटा कॉलम ("कवर", टाइपोफ (बाइट [])) {AllowDBNull = true}); बाइट नोटिस [] ... यह मेरे लिए काम किया है। – Johan

0

यह मदद कर सकता है: http://msdn.microsoft.com/en-us/library/a1904w6t.aspx

के रूप में बदसूरत के रूप में यह हो सकता है, SqlDbType.Image जाने का रास्ता प्रतीत होता है। ऐसा लगता है कि मुझे अपना ओआरएम अपडेट करना होगा, क्योंकि वर्तमान में 8k से अधिक कुछ भी इसे तोड़ देगा।

5

इस प्रयास करें:

SqlParameter blobParam = new SqlParameter("@blob", SqlDbType.VarBinary, buffer.Length); 
blobParam.Value = buffer; 
cmd.Parameters.Add(blobParam); 

देखें कि अगर लंबाई के साथ काम करता

+1

आपके उत्तर के लिए धन्यवाद, मैंने इसे हल कर लिया है। – jams

+1

उत्सुकता से बाहर समाधान क्या था? – dmg

+1

'बफर' का प्रकार क्या है? –

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