2010-09-24 40 views
6

Có một cơ sở dữ liệu SQL Compact v3.1 mà tôi muốn đọc nhanh. Tôi đang làm điều này trong python vì vậy tôi không có quyền truy cập vào mã được quản lý.Cách mở cơ sở dữ liệu SQL Compact chỉ đọc

Tôi nhận thấy rằng nếu tôi sử dụng adodbapi, tệp cơ sở dữ liệu thực sự bị sửa đổi chỉ bằng cách mở nó. Và thật đáng buồn khi tôi thêm 'Chế độ tệp = Chỉ đọc' vào chuỗi kết nối, tôi nhận được một lỗi lạ.

Đây là mã tôi sử dụng để kết nối:

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\\;') 

Và sau đó tôi nhận được thông báo lỗi

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\\";') 

tôi thêm SSCE bởi vì khi tôi đã viết một chương trình thử nghiệm trong C# nó cần nó . Các mã sau hoạt động hoàn toàn tốt đẹp và không sửa đổi các tập tin khi bạn làm một truy vấn SELECT đơn giản.

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

Thanks for the help,
Evelio

Trả lời

Các vấn đề liên quan