2010-09-24 16 views
6

Il existe une base de données SQL Compact v3.1 que je veux lire rapidement. Je le fais en python, donc je n'ai pas accès au code managé.Comment ouvrir la base de données SQL Compact Lecture seule

J'ai remarqué que si j'utilise adodbapi, le fichier de base de données est modifié en l'ouvrant. Et malheureusement quand j'ajoute 'File mode = Read Only' à la chaîne de connexion, j'obtiens une erreur bizarre.

Voici le code que j'utilise pour se connecter:

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

Et puis je reçois le message d'erreur

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

J'ai ajouté SSCE parce que quand je l'ai écrit un programme de test en C#, il en avait besoin . Le code suivant fonctionne parfaitement et ne modifie pas le fichier lorsque vous effectuez une requête SELECT simple.

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

Merci pour l'aide,
Evelio

Répondre