Istnieje baza danych SQL Compact v3.1, którą chcę szybko przeczytać. Robię to w pythonie, więc nie mam dostępu do kodu zarządzanego.Jak otworzyć bazę danych SQL Compact tylko do odczytu
Zauważyłem, że jeśli użyję adodbapi, plik bazy danych zostanie zmodyfikowany właśnie przez jego otwarcie. I niestety, gdy dodaję "Tryb pliku = Tylko do odczytu" do ciągu połączenia, otrzymuję dziwny błąd.
Oto kod używać do łączenia:
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\\;')
I wtedy pojawia się komunikat o błędzie
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\\";')
dodałem SSCE bo kiedy napisałem program testowy w C# to potrzebował . Poniższy kod działa doskonale i nie modyfikuje pliku po wykonaniu prostego zapytania SELECT.
conn = new SqlCeConnection("Data Source = awesome.spf; File mode = Read Only;SSCE:Temp File Directory=\"c:\\users\\evelio\\desktop\\\";");
conn.Open();
Dzięki za pomoc,
Evelio
Dzięki! To działa idealnie! – evelio