2010-09-24 18 views
6

एक SQL कॉम्पैक्ट v3.1 डेटाबेस है जिसे मैं जल्दी से पढ़ना चाहता हूं। मैं इसे पायथन में कर रहा हूं इसलिए मेरे पास प्रबंधित कोड तक पहुंच नहीं है।एसक्यूएल कॉम्पैक्ट डेटाबेस को कैसे खोलें केवल

मैंने देखा है कि अगर मैं adodbapi का उपयोग करता हूं तो डेटाबेस फ़ाइल वास्तव में इसे खोलकर संशोधित हो जाती है। और दुख की बात है कि जब मैं कनेक्शन स्ट्रिंग में 'फ़ाइल मोड = केवल पढ़ने' जोड़ता हूं तो मुझे एक अजीब त्रुटि मिलती है।

import adodbapi 
adodbapi.connect('Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0; Data Source="awesome.sdf"; File mode = Read Only;SSCE:Temp File Directory=c:\temp\\;') 

और फिर मैं त्रुटि संदेश

OperationalError: (com_error(-2147352567, 'Exception occurred.', (0, u'Microsoft OLE DB Service Components', 
      u'Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.', 
      None, 0, -2147217887), None), 
    u'Error opening connection: Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0; Data Source="Awesome.sdf";File mode = Read Only;SSCE:Temp File Directory="c:\\\temp\\";') 

मैं SSCE जोड़ा क्योंकि जब मैं सी # में एक परीक्षण कार्यक्रम ने लिखा कि यह यह आवश्यक मिलती है:

यहाँ कोड मैं कनेक्ट करने के लिए उपयोग करें । निम्न कोड पूरी तरह से ठीक काम करता है और जब आप एक साधारण चयन क्वेरी करते हैं तो फ़ाइल को संशोधित नहीं करता है।

conn = new SqlCeConnection("Data Source = awesome.spf; File mode = Read Only;SSCE:Temp File Directory=\"c:\\users\\evelio\\desktop\\\";"); 
conn.Open(); 

मदद के लिए धन्यवाद,
Evelio यहाँ

उत्तर