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 :

Quand créer une connexion à la base de données ?


Sujet :

Bases de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Par défaut Quand créer une connexion à la base de données ?
    Bonjour

    Mon application contient un fenêtre pour vérifier le nom utilisateur et mot de passe ,voila le code de bouton por faire;ça dans l'application:


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    void Dialog::on_pushButton_clicked()
    {
        QSqlDatabase mydb = QSqlDatabase::addDatabase("QMYSQL");
            mydb.setHostName("localhost");
            mydb.setUserName("root");
            mydb.setPassword("");
            mydb.setDatabaseName("stock");
     
     
            QSqlQuery qry;
     
        QString username,password;
        username=ui->lineEdit->text();
        password=ui->lineEdit_2->text();
     
        if(!mydb.open())
        {
            qDebug()<<"Failed to open the database";
        }
     
     
        if(qry.exec("select * from user where username='"+username+"' and password='"+password+"'"))
        {
            int count;
            while(qry.next())
            {
                count++;
            }
     
            if(count==1)
            {ui->label_4->setText("username and password is correct");
            }
     
            else {
                   ui->label_4->setText("username and password is not correct");
            }
     
     
    }
    }
    que je clique sur le bouton
    QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
    QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
    QSqlQuery::value: not positioned on a valid record

    Merci d'avace

  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


    À mon avis, à lire la doc http://doc.qt.io/qt-5/qsqldatabase.html, le problème est que tu crées plusieurs objets QSqlDatabase avec le même nom de connexion. Apparemment, tu ne devrais faire qu'un seul appel à QSqlDatabasePrivate::addDatabase pour une même base de données dans une application donnée (sauf besoin particulier). Donc, une fois cet objet créé une fois (au lancement de l'application, par exemple), tu peux faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSqlDatabase db = QSqlDatabase::database();
    quand tu dois accéder à nouveau à la base. Sans garantie, c'est inféré d'une lecture en diagonale de la doc.
    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
    Membre confirmé
    Homme Profil pro
    Développeur (aussi appelé "programmateur" ou "magicien")
    Inscrit en
    Octobre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur (aussi appelé "programmateur" ou "magicien")
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 101
    Par défaut
    Le plus simple serait de créer un attribut QSqlDatabase, et faire la connexion avec ta base de données dans le constructeur de ta classe. Ainsi ta base sera accessible de partout et tu n'a plus besoin de reconnexion !

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/03/2010, 02h26
  2. Réponses: 4
    Dernier message: 06/07/2009, 00h04
  3. Ajouter une connexion de base de données
    Par Papy214 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/06/2009, 17h33
  4. [VB.NET] Comment créer une table dans base de données ?
    Par ptitesouris dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/05/2006, 08h46

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