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

C++ Discussion :

Aide a la compréhension QtSQql


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2023
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Aide a la compréhension QtSQql
    Bonjour,

    Je voulais faire une simulation de page d'authentification donc j'ai fait mon interface avec Qt Creator dans mon fichier .ui.

    J'ai voulu également m'essayer à <QtSql> et donc stocker de faux username et password dans un tableau.

    J'ai suivi la documentation pour créer une base de donnée, un tableau, etc avec <QtSql>, mon code marche mais par rapport a un autre projet de Task_Manager où j'ai utiliser la library <sqlite3.h> je n'ai pas de bdd qui se créer dans mon dossier.

    Je me demande donc comment mon code puisse marcher? Et ou est cette bdd?

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include "Page.h"
    #include "ui_Page.h"
     
    Auth_Page_DB::Auth_Page_DB(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::Auth_Page_DB)
    {
        ui->setupUi(this);
        db = QSqlDatabase::addDatabase("QSQLITE");
        db.setHostName("localhost");
        db.setDatabaseName("DB.sqlite");
        db.setUserName("root");
        db.setPassword("");
     
        if(!db.open())
        {
            qDebug() << "Impossible d'ouvrir la base de données !";
                return;
        }
        QSqlQuery query;
     
        // Requête SQL pour créer la table utilisateur
        query.prepare("CREATE TABLE users ("
                      "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                      "username TEXT, "
                      "password TEXT"
                      ")");
     
        if (query.exec()) {
                qDebug() << "Table utilisateur créée avec succès.";
        } else {
                qDebug() << "Erreur lors de la création de la table utilisateur : " << query.lastError().text();
        }
     
        connect(ui->ConnexionButton,SIGNAL(clicked()),this,SLOT(OnConnexionButton()));
    }
     
    Auth_Page_DB::~Auth_Page_DB()
    {
        delete ui;
    }
     
     
    void Auth_Page_DB::OnConnexionButton(){
            QSqlQuery query;
            query.prepare("SELECT * FROM users WHERE username = :username AND password = :password");
            query.bindValue(":username", ui->UsernameEdit->text());
            query.bindValue(":password", ui->PasswordEdit->text());
     
            if (query.exec() && query.next()) {
                // Si une correspondance est trouvée, l'authentification est réussie
                qDebug() << "Authentification réussie";
            } else {
                // Aucune correspondance trouvée, l'authentification a échoué
                qDebug() << "Echec de l'authentification";
            }
     
    }

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur Système
    Inscrit en
    Novembre 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Système

    Informations forums :
    Inscription : Novembre 2019
    Messages : 17
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    Ta bdd est créée dans le répertoire courant (le répertoire de l'exécutable dans ton cas certainement).

    Si tu veux maitriser l'emplacement de ta bdd, tu as juste besoin de préciser le chemin lors de l'appel à setDatabaseName().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db.setDatabaseName("C:\\LeCheminVersLaBdd\\DB.sqlite");

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

Discussions similaires

  1. [Débutant] OriginAtMargins - aide sur la compréhension de ce paramètre
    Par altahir007 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/01/2013, 14h20
  2. Aide pour la compréhension des view
    Par snoopo dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 22/04/2011, 15h27
  3. Besoin d'aide pour la compréhension de certains termes techniques !
    Par kev42100 dans le forum Moteurs de jeux vidéo
    Réponses: 3
    Dernier message: 06/08/2010, 18h49
  4. [Logs bruts] Aide pour la compréhension
    Par GarGamel55 dans le forum Sécurité
    Réponses: 2
    Dernier message: 04/03/2009, 16h44
  5. [ARM7] Aide pour la compréhension d'un code
    Par hack-77 dans le forum Autres architectures
    Réponses: 6
    Dernier message: 25/03/2008, 20h34

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