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 :

Erreur dans la base de données


Sujet :

SQLite

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Developpeur Electronique/Info. Indus. - option bricolage
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Electronique/Info. Indus. - option bricolage

    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Par défaut Erreur dans la base de données
    Bonjour,

    j'ai un gros souci avec une de mes appli utilisant une base SQlite.
    Je développe en C# et utilise la bibliothèque System.data.Sqlite.

    J'ai manifestement un probleme avec une base qui semble corrompue.
    ( Elle ne fait que 17Mo ). J'ai effectué un diagnostique et je récupère cette information.

    "*** in database main ***
    Page 16095: btreeInitPage() returns error code 11"


    J'ai bien trouvé une solution pour résoudre automatiquement le problème en utilisant sqlite3.exe et en faisant un dump mais je me dis que ca fait un exe
    en plus a mettre dans la distri, pour peu que l'OS le bloque pour une raison quelconque je suis coincé.

    Ma question est donc s'il existait une solution exploitant la bibliothèque .NET afin de réaliser cette même opération de dump.

    Remarque : BackupDatabase() ne sert qu'a copier la base, l'erreur est reproduite. J'imaginais peut un truc exploitant GetSchema() ou un truc equivalent.

    a savoir que faire un "SELECT * FROM {}" ne servirai a rien dans la mesure
    ou la base est corrompue. Pour exemple je recupere dans une de mes tables (celle qui pose problème) Un dataset de 450 lignes alors qu'il y en a 503.

    Si l'un d'entre vous a une idée je suis preneur.

    De toute facon mon WE est foutu, je suis bon pour coder, coder .....

    Merci d'avance a tous et bon WE a vous.

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Juste une idée.

    Je travaille avec Python, et j'utilise pas mal sqlite3. Le pilote sqlite3 de Python permet de convertir la base de données en script SQL (méthode iterdump). Cela me permet, en plus d'une sauvegarde, de faire des modifications de la base que sqlite3 ne permet pas. Et l'exécution du script permet de retrouver la base sqlite3 opérationnelle.

    Peut-être que cette opération serait possible même dans ton cas d'erreur? C'est bien sûr sans garantie, mais si ça marchait, tu pourrais modifier ce qui fait l'erreur et retrouver ta base. Cela dépend, bien entendu, de la nature et de l'importance de l'erreur.

    Si tu ne sais pas le faire, transmets moi la base par mp et j'essaie.

  3. #3
    Membre averti
    Homme Profil pro
    Developpeur Electronique/Info. Indus. - option bricolage
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Electronique/Info. Indus. - option bricolage

    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Par défaut
    Merci pour ta réponse, je pourrai t'envoyer une base, mais je dois le faire avec la bibliothèque que j'utilise. en utilisant sqlite3 je peux aussi exporter en SQL, c'est d’ailleurs ce que je fais pour restaurer ma base :

    sqlite3 mabase.db .dmp | sqlite3.exe maNewbase.db

    J'ai trouvé des librairies .NET qui permettent directement d'exporter (autres que system.data.sqlite) le souci est qu'elles sont payantes. Je voudrais éviter d'inclure une bibliothèque payante dans mes applis et si quelqu'un connaissant une solution afin d'exploiter celle que j'utilise. Et la solution d'inclure sqlite3 dans l'install me refroidit ... Ceci dit, si aucune autre solution ne se profile je pense que ce sera celle que j'utiliserai à terme.

Discussions similaires

  1. erreur récuperation d'un valeur int dans une base de donné mysql
    Par amintoraa dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 28/04/2014, 09h45
  2. Erreur d'insertion dans la base de données
    Par bza88 dans le forum Android
    Réponses: 1
    Dernier message: 07/06/2013, 13h24
  3. Réponses: 0
    Dernier message: 09/07/2009, 15h10
  4. [MySQL] Erreur dans la base de données
    Par XAeon dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/11/2008, 06h24
  5. Réponses: 10
    Dernier message: 20/01/2008, 20h57

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