Как открыть базу данных SQL Compact только для чтения - PullRequest
6 голосов
/ 24 сентября 2010

Существует база данных SQL Compact v3.1, которую я хочу быстро прочитать. Я делаю это в Python, поэтому у меня нет доступа к управляемому коду.

Я заметил, что если я использую adodbapi, файл базы данных будет изменен, просто открыв его. И, к сожалению, когда я добавляю «File mode = Read Only» в строку подключения, я получаю странную ошибку.

Вот код, который я использую для подключения:

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

1 Ответ

3 голосов
/ 25 сентября 2010
...