2011-12-22 13 views
6

मेरे पास एक स्क्लाइट डेटाबेस है जिसमें मैं अपने मोनो टच ऐप के साथ शामिल हूं। इसने अब तक मेरे लिए ठीक काम किया है, लेकिन अब मैं इसे पढ़ने-लिखने के बजाय केवल पढ़ने के लिए मोड में खोलना चाहता हूं।केवल पढ़ने योग्य मोड में स्क्लाइट डेटाबेस नहीं खोल सकता

तो मैं कनेक्शन स्ट्रिंग बदल गया है 'केवल पढ़ने के लिए = सच' शामिल करने के लिए, लेकिन जब मैं ओपन() कहते हैं, मैं निम्नलिखित त्रुटि मिलती है:

Library used incorrectly (at Mono.Data.Sqlite3.Open) 

अगर मैं अपवाद में खुदाई यह

से पता चलता
_errorCode = Misuse 

और यह वह सारी जानकारी है जो यह देता है।

कोड यह रहा:

var _conn = new SqliteConnection("Data Source=db/sampleDb;Read Only=True"); 
_conn.Open(); 

उत्तर

7

आपको Mono.Data.Sqlite.dll में एक बग मिली।

Create ध्वज ReadOnly ध्वज को पार्स और सेट से पहले जोड़ा गया है (डिफ़ॉल्ट रूप से)। परिणामी ध्वज अमान्य है और वर्ग एक त्रुटि रिपोर्ट करता है।

मैं भविष्य की रिलीज (मोनो और मोनो टच ...) के लिए इसे ठीक कर दूंगा। यदि यह आपको अवरोधित करता है तो कृपया http://bugzilla.xamarin.com पर एक बग रिपोर्ट खोलें और मैं बग रिपोर्ट में एक निश्चित असेंबली (मौजूदा को प्रतिस्थापित करने के निर्देशों के साथ) संलग्न करूंगा।

+0

बहुत उपयोगी है, बहुत बहुत धन्यवाद। मैं इसे बिल्कुल अवरुद्ध नहीं कर रहा हूं लेकिन मैं स्थिति को ट्रैक करने के लिए एक बग खोलना चाहता हूं - अब ऐसा करेगा। – vlad259

+0

यदि यह लोगों के लिए उपयोग में है, तो यहां उठाए गए बग का एक लिंक यहां दिया गया है: http://bugzilla.xamarin.com/show_bug.cgi?id=2721 – vlad259

1

आप की कोशिश की है ?:

var _conn = new SqliteConnection("Data Source=db/sampleDb;mode=ro"); 
0

आपका कोड सही है, मैं तो बस इसे करने की कोशिश (MonoTouch का उपयोग नहीं) और यह मेरे लिए काम किया।

क्या आपके पास System.Data.SQLite.dll का नवीनतम संस्करण है? यदि हां, तो शायद यह मोनो टच से संबंधित एक समस्या है।

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