7
votes

Impossible d'ouvrir la base de données SQLite en mode lecture seule

J'ai une base de données SQLite que j'inclus avec mon application MonoTouch. Cela m'a bien fonctionné pour moi jusqu'à présent, mais je veux maintenant l'ouvrir en mode lecture seule plutôt que de lire-écrire.

J'ai donc changé la chaîne de connexion pour inclure "lecture seule = vraie", mais quand j'appelle Open (), je reçois l'erreur suivante: p> xxx pré>

si je creuse à l'exception, il affiche P>

var _conn = new SqliteConnection("Data Source=db/sampleDb;Read Only=True");
_conn.Open ();


0 commentaires

4 Réponses :


1
votes

Avez-vous essayé?: XXX


0 commentaires

0
votes

Votre code est correct, je viens de l'essayer (n'utilisant pas monoTouch) et cela a fonctionné pour moi.

Avez-vous la dernière version de system.data.sqlite.dll ? Si oui, alors peut-être que c'est un problème lié à MonoTouch.


0 commentaires

9
votes

Vous avez trouvé un bogue dans mono.data.sqlite.dll .

Le drapeau Créer est ajouté (par défaut) avant que le drapeau lisonly est analysé et défini. Le drapeau résultant est invalide et sqlite signale une erreur.

Je vais résoudre ce problème pour les futures versions (de Mono et MonoTouch ...). Si cela vous bloque, veuillez ouvrir un rapport de bogue sur http://bugzilla.xamarin.com et je vais joindre un assemblage fixe (avec instructions pour remplacer l'existant) au rapport de bogue.


2 commentaires

Très utile à savoir, merci beaucoup. Je ne suis pas complètement bloqué par cela, mais j'aimerais ouvrir un bug pour suivre le statut - le fera maintenant.


Si cela est utile pour les gens, voici un lien vers le bogue que j'ai soulevé: Bugzilla .xamarin.com / show_bug.cgi? ID = 2721



2
votes

Ceci a fonctionné pour moi (ASPnet Core):

var _conn = new SqliteConnection("Data Source=db/sampleDb;mode=ReadOnly");


0 commentaires