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

Bases de données Discussion :

Créer une base de données


Sujet :

Bases de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut Créer une base de données
    Bonjour à tous,

    Je programme avec PySide (biding Qt pour python) et le problème que je rencontre aujourd'hui touche directement Qt et plus particulièrement QSQL.

    J'ai trouvé toutes les ressources, conseils, infos dans la doc pour lire, écrire, modifier, supprimer des informations dans une bdd Sqlite et c'est vraiment très plaisant de pouvoir faire simplement des taches pas toujours passionnantes.

    Cela dit, j'ai l'impression qu'il manque à QSQL un outil primordial... celui permettant de créer la BDD.

    La commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("mabdd");
    va bien créer la la base de donnée mais malheureusement celle-ci n'est pas reconnue comme une base de donnée sqlite valide.

    A l'heure actuelle je dois donc passer par la méthode traditionnelle de python pour créer cette base de donnée.
    Ceci n'est en soit pas un véritable problème c'est juste un peu dommage.

    Je passe certainement à coté de quelque chose d'important, mais quoi???

    Si quelqu'un a des éléments de réponses à fournir ça serait vraiment bien.

    D'avance merci à tous.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 753
    Par défaut


    Normalement, avec SQLite, quand tu demandes d'ouvrir une base, si le fichier n'existe pas, il est créé automatiquement. Tu as donc bien un fichier de créé ? Quelle est l'erreur que tu reçois ?

    Que tentes-tu de faire pour vérifier si la base est bien créée ? Un coup de db.open() ? sqlite3.exe ?

    Si tu tentes du db.open(), que te donne précisément db.lastError().text() ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Le fichier est bien créé, je te le confirme.
    Par contre les erreurs que je rencontre sont les suivantes:
    1. Infos que je tente de rentrer par la suite ne sont pas prises en compte
    2. Lors de l'ouverture de la base de données via un logiciel de lecture de bdd Sqlite (SQLite Database Browser 2.0 dans mon cas), celui-ci me dit que le fichier n'est pas une bdd sqlite
    3. db.lastError().text() ne me donne rien (chaine vide)
    4. db.isValid() me donne renvoi un True


    En relisant mon code, je m'aperçois qu'il manque un point important lorsque je tente de créer une nouvelle bdd... la création des colonnes.

    Je me pencherai dessus en fin de journée, mais quelque chose me dit que je suis sur la bonne voie ^^. J'espère juste que ça sera aussi simple que le reste

    EDIT:
    Bon, j'ai presque honte de poster cet EDIT ^^. Qt étant tellement simple et fait tellement de choses à notre place, que je me suis laissé croire qu'il saurait aussi me créer ma table avec mes colonnes Évidemment c'est loin d'être le cas...
    Un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QSqlQuery query;
    query.exec("CREATE TABLE t1 (id INTEGER PRIMARY KEY AUTOINCREMENT, nom TEXT, prenom TEXT)");
    et le tour est joué ^^

    Ce qui en PySide donne pour ceux que ça intéresse:
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    self.db = QSqlDatabase.addDatabase("QSQLITE")
    self.db.setDatabaseName(bdd)
    self.db.open()
    query = QSqlQuery()
    query.exec_("CREATE TABLE t1 (id INTEGER PRIMARY KEY AUTOINCREMENT, nom TEXT, prenom TEXT)")
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

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

Discussions similaires

  1. Créer une base de Données en Arabe
    Par elmessoussi dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/07/2006, 13h52
  2. créer une base de donnéé
    Par sdow dans le forum Installation
    Réponses: 1
    Dernier message: 20/01/2006, 05h52
  3. Réponses: 5
    Dernier message: 07/11/2005, 11h11
  4. Comment créer une base de donnée Access ?
    Par Soulama dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/10/2005, 14h56
  5. créer une base de donnée à partir d'un script
    Par illegalsene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/08/2005, 14h08

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