Nous utilisons sqlite056.jar dans notre code. Tout en insérant dans la base de données en lot, nous obtenons une exception en ligne lorsque nous allons vous engager.
lignes de code em> strong> p> exception forte> p> java.sql.SQLException: database locked
5 Réponses :
Il semble que plus d'un processus tente de modifier la base de données. Vous ne pouvez avoir qu'une seule connexion ouverte à tout moment. Plus de fond sur le problème peut nous aider à vous fournir une réponse plus concrète. P>
Pouvons-nous travailler avec de multiples tables de base de données en même temps avec un même objet de connexion de base de données Supposons que j'ai inséré une valeur dans le tableau 1 et également une valeur insérée dans le tableau 2 de la base de données avec le même objet de connexion de base de données.
ou est une exception verrouillée de la base de données survenue en raison de la ligne Obj Connection.commit ()
Lecture d'une base de données SQLite définit l'état de verrouillage à partagé. Plusieurs lecteurs peuvent être actifs en même temps. P>
écrire dans une base de données SQLite définit l'état de verrouillage à l'exclusivité. Aucun autre processus ne peut être actif à cette époque. P>
Vous pouvez trouver une explication détaillée sur http://www.sqlite.org/Lockingv3.htmlLec a> p>
J'ai eu la même erreur lors de l'exécution d'une applet (qui a accédé à une DB SQLite) avec AppetViewer. Mais seulement lors de la course sous une JVM 64 bits. Passer à un JVM 32 bits a fonctionné bien (Windows). Le pilote 64 bits n'a probablement pas été compilé dans le pot.
La connexion doit être fermée après chaque requête. Si l'une des connexions persiste toujours. J'avais la même erreur sur Java Desktop Apps, maintenant résolue. P>
Dans mon cas, j'ai oublié d'ajouter où la clause de ma requête de mise à jour, et que donne "la base de données verrouillée em>". p>
Vérifiez soigneusement vos requêtes. p>
Edit: j'ai oublié d'indiquer que j'ai utilisé un type de requête de mise à jour où je modifie plusieurs attributs: P>
Mettre à jour les utilisateurs Définition du poids = 160, désiré poids = 145 où id = 1; p>
blockQuote>
Une très ancienne question b> - mais merci d'avoir tenté de répondre. Dans ce cas particulier, vous n'avez aucune idée de l'instruction SQL CODE> en question ressemblant à - et suggère donc que la requête était mise à jour code> avec manquant où Code> vient à travers comme devinge-travail. Ce qui aurait été plus approprié dans ce cas était de demander (dans un commentaire) ce que la requête sql code> ressemblait - affirmant que la cause peut être quelque chose de similaire à un manquant> où code> clause.
J'ai ajouté Modifier à mon post. Je pense que peu importe la longue question, les gens googles pour ce problème, comme moi. Les salutations!
Bon point. En ce qui concerne la déclaration SQL, je voulais dire que la question elle-même n'incluait pas l'instruction SQL, de sorte que vous ne l'auriez pas connu (sans le demander) comment il a regardé. Mais bon point concernant répondre de vieilles questions - bon point.
Fermer le navigateur DB (travaillé pour moi) ou quoi que ce soit d'autre accède à la base de données p>