IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

Database is locked avec SQLite


Sujet :

SQLite

  1. #1
    Futur Membre du Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Database is locked avec SQLite
    Bonjour,

    J'ai créé une petite appli en java qui utilise un fichier .db avec SQLite.
    Faire des lectures sur le fichier par "select" ne pose jamais de problème quelque soit la quantité de "select" que je fais. Mais quelque soit la façon dont j'écris mon code pour une ECRITURE avec "insert into" (executeUpdate) sur mon fichier, qui fait suite à une lecture "select" (executeQuery), ça plante avec le message d'erreur : "database is locked", qui pointe sur ma ligne executeUpdate(requete).

    J'ai même essayé de séparer chacune des 2 connections à la database, par un "try...catch" en ouvrant une connection, un statement et en les fermant dans un "finally" après le "catch" ... et j'ai pourtant un "database is locked".

    J'ai essayé de mettre mon code uniquement pour l'écriture dans un "main". Et ça marche ! Mes données sont enregistrées dans la base, ce qui prouve que ce n'est pas mon code qui merde. Alors pourquoi ça plante lorsque ce code fait suite à un "select" et même lorsque la connection est "close" avant d'ouvrir la nouvelle pour l'écriture ?

    Alors si vous avez une idée du problème, je suis preneur !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    autodidacte
    Inscrit en
    Février 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Février 2015
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Après près de quinze jours d'errements, j'ai fini par trouver mon problème.

    J'avais créé mon pattern singleton pour la connexion à ma base que j'utilisais via les DAO et curieusement, je redéfinissais une connexion avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                Class.forName("org.sqlite.JDBC");
                connect = DriverManager.getConnection("jdbc:sqlite:Madatabase.db");
    pour faire mon "INSERT". Et ça plantait même lorsque la connexion était close.

    Finalement, en faisant : connect = MaConnection.getInstance();(MaConnection est ma classe du pattern singleton qui correspond au SdzConnection du tutorial de cysboy) ,

    mon insertion fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/02/2015, 16h33
  2. Problème avec SQLite : Database locked
    Par albert55 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 19/04/2013, 16h10
  3. [Généralités] WINDEV + SQLITE database is locked
    Par sperchey dans le forum WinDev
    Réponses: 2
    Dernier message: 15/01/2013, 21h00
  4. [ASE] Les locks avec un cursor for update
    Par PiyuXYZ dans le forum Sybase
    Réponses: 1
    Dernier message: 11/02/2006, 13h17
  5. Création database depuis Delphi avec dbExpress
    Par alex4 dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/09/2004, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo