2010-09-24 66 views
6

有一個SQL Compact v3.1數據庫,我想快速閱讀。我在python中這樣做,所以我沒有訪問託管代碼。如何打開SQL Compact數據庫只讀

我注意到,如果我使用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,因爲當我在C#寫了一個測試程序,它需要它的錯誤信息。下面的代碼工作得很好,並且在執行簡單的SELECT查詢時不會修改文件。

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

感謝您的幫助,
Evelio

回答