2010-09-24 26 views
6

Hay una base de datos SQL Compact v3.1 que deseo leer rápidamente. Estoy haciendo esto en python, así que no tengo acceso al código administrado.Cómo abrir la base de datos SQL Compact solo lectura

Me he dado cuenta de que si uso adodbapi, el archivo de la base de datos se modifica con solo abrirlo. Y, lamentablemente, cuando agrego 'Modo archivo = Solo lectura' a la cadena de conexión, aparece un error extraño.

Este es el código que utilizo para conectar: ​​

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

Y luego me sale el mensaje de error

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

he añadido el SSCE porque cuando escribí un programa de prueba en C# lo necesitaba . El siguiente código funciona perfectamente bien y no modifica el archivo cuando haces una simple consulta SELECT.

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

Gracias por la ayuda,
Evelio

Respuesta

Cuestiones relacionadas