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 :

Ligne de commande : SELECT n'affiche rien ?


Sujet :

SQLite

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Ligne de commande : SELECT n'affiche rien ?
    Bonjour à tous,

    Je découvre SQLLite et j'essaie de l'utiliser en ligne de commande mais rien ne s'affiche avec la commande SELECT lorsque j'ouvre une base existante ... je ne vois pas où se situe le problème
    Voici le code python qui génère une base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    import sqlite3
     
    # Creation base
    mybase = sqlite3.connect('maBase.db')
     
    # Creation table
    cursor = mybase.cursor()
    cursor.execute("""
    CREATE TABLE IF NOT EXISTS users(
         id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
         name TEXT,
         age INTEGER)
    """)
    mybase.commit()
     
    # inserer des données 
    users = []
    users.append(("olivier", 30))
    users.append(("pierre", 90))
    cursor.executemany("""INSERT INTO users(name, age) VALUES(?, ?)""", users)
     
    # Fermeture de la base 
    mybase.close()
    Et lorsque j'ouvre cette base en ligne de commande, la table existe bien mais pas moyen d'avoir accès aux informations de la table. Je m'y prends sans doute mal mais je ne vois pas à quel endroit. Voici ce que je fais en ligne de commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $ sqlite3 maBase.db
    $sqlite> .tables                # affiche "users"
    $sqlite> SELECT * from users;  # N'affiche rien 
    $
    Merci d'avance pour votre aide :-)

  2. #2
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Bonjour,

    C'est normal si ta table est vide.

    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from users; -- pour voir si le select fonctionne :-)
    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    Merci Bloon,

    effectivement ça me renvoie 0....

    ça me rassure d'un côté mais je ne comprends pas pourquoi c'est vide alors que j'ai rempli la base avant (dans le fichier .py lancé avant de tester SELECT)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    users.append(("olivier", 30))
    users.append(("pierre", 90))
    cursor.executemany("""INSERT INTO users(name, age) VALUES(?, ?)""", users)
    Si quelqu'un sait comment il faut faire pour peupler la base dans le fichier .py pour que je puisse ensuite lancer des requêtes en ligne de commande ??

    Merci beaucoup !

  4. #4
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    S'il n'y a pas d'erreur dans la requête Insert, il manque peut-être un commit.

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    Bonjour Bloon,

    Merci pour la suggestion, j'ai rajouté un commit mais j'ai toujours le même résultat..

    Bonne journée

  6. #6
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Bon là on va atteindre les limites de ce qu'on peut faire à distance :-)

    A essayer directement dans le code python : exécuter le select (après les insert), faire un insert "en dur" (sans passer par des paramètres), vérifier les codes erreurs, vérifier le nombre de lignes modifiées...
    A essayer en ligne de commande : faire un insert dans la base, vérifier que c'est bon par un select, puis faire un select en python pour voir

    Es-tu sûr d'être sur la même base ? La date/heure du fichier change-t-elle ?

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par gingko41 Voir le message
    Merci pour la suggestion, j'ai rajouté un commit mais j'ai toujours le même résultat..
    Ben non.
    Moi j'ai vraiment rajouté un commit et ça fonctionne
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    import sqlite3
     
    # Creation base
    mybase = sqlite3.connect('maBase.db')
     
    # Creation table
    cursor = mybase.cursor()
    cursor.execute("""
    CREATE TABLE IF NOT EXISTS users(
         id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
         name TEXT,
         age INTEGER)
    """)
    mybase.commit()
     
    # inserer des données 
    users = []
    users.append(("olivier", 30))
    users.append(("pierre", 90))
    cursor.executemany("""INSERT INTO users(name, age) VALUES(?, ?)""", users)
    mybase.commit()
     
    # Fermeture de la base 
    mybase.close()
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Citation Envoyé par gingko41 Voir le message
    Bonjour Bloon,

    Merci pour la suggestion, j'ai rajouté un commit mais j'ai toujours le même résultat..

    Bonne journée
    Je vois dans ton code du premier post que tu mets le commit après le create. Il faut le mettre après Insert. Le commit sert à valider une transaction durant laquelle des requêtes ont modifié les données (update, delete, insert).

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    Bonjour à tous,

    Ok merci pour la correction, j'avais mal replacé le commit,

    Bonne journée à vous

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Tu peux aussi te connecter en activant l'autocommit => mybase = sqlite3.connect('maBase.db', isolation_level=None)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Update un champ avec une ligne de commande select case when
    Par ConsultantSage100 dans le forum Développement
    Réponses: 1
    Dernier message: 14/06/2018, 19h21
  2. Afficher propriétés fichier en ligne de commande
    Par rolandjarry dans le forum VBScript
    Réponses: 4
    Dernier message: 24/09/2010, 16h16
  3. [XL-2002] Ligne de Commande Batch afficher Usf Excel
    Par vaucluseimmo dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 13/01/2010, 20h13
  4. Réponses: 0
    Dernier message: 09/02/2009, 18h39
  5. [Oracle 10 XE] Un select n'affiche rien
    Par dingo200 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 21/10/2008, 23h07

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