Существует база данных 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