如何以只读方式打开SQL Compact数据库
我有一个 SQL Compact v3.1 的数据库,想要快速读取它。我是在 Python 中进行操作,所以不能使用托管代码。
我发现如果我使用 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