Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Error executing query: "Driver not loaded" - Need Assistance
Forum Updated to NodeBB v4.3 + New Features

Error executing query: "Driver not loaded" - Need Assistance

Scheduled Pinned Locked Moved Solved General and Desktop
11 Posts 4 Posters 1.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    eclispe
    wrote on last edited by
    #1

    Hello Qt community,

    I hope this message finds you well. I'm currently facing an issue while executing a query, and I'm seeking guidance to resolve it. I appreciate your expertise and any assistance you can provide.

    • Error Details:
      I'm currently facing an issue where I can insert data into my database successfully, but encountering difficulties when trying to read or retrieve data .
      I encountered the following error message: "Error executing query: Driver not loaded."

    • Database Type: Oracle

    • Database Connection Driver: QODBC

    • Programming Language: c++

    This is my connection function :

    bool connexion::connect(){
    bool test=false;
         QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
         db.setDatabaseName("ProjectDataBase");
         db.setUserName("eclipse");
         db.setPassword("eclipse");
    
         if (db.open())
         {
             test=true;
         }
    
     return  test ;
    }
    

    This is my insert and display funtions :

    /*DISPLAY*/
    QSqlQueryModel * client::display_all_clients(){
        QSqlQueryModel *model = new QSqlQueryModel;
        model->setQuery("SELECT * FROM CLIENTS");
        if (model->lastError().isValid()) {
            qDebug() << "Error executing query:" << model->lastError().text();
        }
        model->setHeaderData(0, Qt::Horizontal, QObject::tr("IDENTIFIANT"));
        model->setHeaderData(1, Qt::Horizontal, QObject::tr("FIRST NAME"));
        model->setHeaderData(2, Qt::Horizontal, QObject::tr("NAME"));
        model->setHeaderData(3, Qt::Horizontal, QObject::tr("DATE OF BIRTH"));
        return model ;
    }
    /*ADD*/
    bool client::add_client() {
        QSqlQuery query;
        query.prepare("INSERT INTO CLIENTS (CIN, FIRSTNAME, NAME, DOB) "
                      "VALUES (?, ?, ?, ?)");
        query.bindValue(0, cin);
        query.bindValue(1, firstName);
        query.bindValue(2, name);
        query.bindValue(3, dob);
        return query.exec();
    }
    

    Thank you in advance for your time and assistance.

    JonBJ 2 Replies Last reply
    0
    • E eclispe

      Hello Qt community,

      I hope this message finds you well. I'm currently facing an issue while executing a query, and I'm seeking guidance to resolve it. I appreciate your expertise and any assistance you can provide.

      • Error Details:
        I'm currently facing an issue where I can insert data into my database successfully, but encountering difficulties when trying to read or retrieve data .
        I encountered the following error message: "Error executing query: Driver not loaded."

      • Database Type: Oracle

      • Database Connection Driver: QODBC

      • Programming Language: c++

      This is my connection function :

      bool connexion::connect(){
      bool test=false;
           QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
           db.setDatabaseName("ProjectDataBase");
           db.setUserName("eclipse");
           db.setPassword("eclipse");
      
           if (db.open())
           {
               test=true;
           }
      
       return  test ;
      }
      

      This is my insert and display funtions :

      /*DISPLAY*/
      QSqlQueryModel * client::display_all_clients(){
          QSqlQueryModel *model = new QSqlQueryModel;
          model->setQuery("SELECT * FROM CLIENTS");
          if (model->lastError().isValid()) {
              qDebug() << "Error executing query:" << model->lastError().text();
          }
          model->setHeaderData(0, Qt::Horizontal, QObject::tr("IDENTIFIANT"));
          model->setHeaderData(1, Qt::Horizontal, QObject::tr("FIRST NAME"));
          model->setHeaderData(2, Qt::Horizontal, QObject::tr("NAME"));
          model->setHeaderData(3, Qt::Horizontal, QObject::tr("DATE OF BIRTH"));
          return model ;
      }
      /*ADD*/
      bool client::add_client() {
          QSqlQuery query;
          query.prepare("INSERT INTO CLIENTS (CIN, FIRSTNAME, NAME, DOB) "
                        "VALUES (?, ?, ?, ?)");
          query.bindValue(0, cin);
          query.bindValue(1, firstName);
          query.bindValue(2, name);
          query.bindValue(3, dob);
          return query.exec();
      }
      

      Thank you in advance for your time and assistance.

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #2

      @eclispe
      The only was you should be able to get "Driver not loaded" is if you call your setQuery() without having previously done the addDatabase("QODBC") in the same session.

      1 Reply Last reply
      2
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #3

        Hi and welcome to devnet,

        In addition to @JonB, you don't do anything if the database fails to open. You should at least print the error message.

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        0
        • E Offline
          E Offline
          eclispe
          wrote on last edited by
          #4

          @JonB @SGaist I apologize for the lack of information in the post .
          this is my main.cpp :

          #include "mainwindow.h"
          #include "connexion.h"
          #include <QApplication>
          #include <QMessageBox>
          int main(int argc, char *argv[])
          {
              QApplication a(argc, argv);
              MainWindow w;
                 connexion c;
                 bool test=c.connect();
                 if(test)
                 {w.show();
                     QMessageBox::information(nullptr, QObject::tr("database is open"),
                                 QObject::tr("connection successful.\n"
                                             "Click Cancel to exit."), QMessageBox::Cancel);
          
             }
                 else
                     QMessageBox::critical(nullptr, QObject::tr("database is not open"),
                                 QObject::tr("connection failed.\n"
                                             "Click Cancel to exit."), QMessageBox::Cancel);
          
              return a.exec();
          }
          
          

          and this is the result :
          data_base_is_open.png
          40ace7f8-78b1-4a64-af94-051846376560-image.png

          Christian EhrlicherC 1 Reply Last reply
          0
          • E eclispe

            @JonB @SGaist I apologize for the lack of information in the post .
            this is my main.cpp :

            #include "mainwindow.h"
            #include "connexion.h"
            #include <QApplication>
            #include <QMessageBox>
            int main(int argc, char *argv[])
            {
                QApplication a(argc, argv);
                MainWindow w;
                   connexion c;
                   bool test=c.connect();
                   if(test)
                   {w.show();
                       QMessageBox::information(nullptr, QObject::tr("database is open"),
                                   QObject::tr("connection successful.\n"
                                               "Click Cancel to exit."), QMessageBox::Cancel);
            
               }
                   else
                       QMessageBox::critical(nullptr, QObject::tr("database is not open"),
                                   QObject::tr("connection failed.\n"
                                               "Click Cancel to exit."), QMessageBox::Cancel);
            
                return a.exec();
            }
            
            

            and this is the result :
            data_base_is_open.png
            40ace7f8-78b1-4a64-af94-051846376560-image.png

            Christian EhrlicherC Online
            Christian EhrlicherC Online
            Christian Ehrlicher
            Lifetime Qt Champion
            wrote on last edited by
            #5

            And from where do you call the select? From the mainwindow ctor?

            Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
            Visit the Qt Academy at https://academy.qt.io/catalog

            1 Reply Last reply
            1
            • E eclispe

              Hello Qt community,

              I hope this message finds you well. I'm currently facing an issue while executing a query, and I'm seeking guidance to resolve it. I appreciate your expertise and any assistance you can provide.

              • Error Details:
                I'm currently facing an issue where I can insert data into my database successfully, but encountering difficulties when trying to read or retrieve data .
                I encountered the following error message: "Error executing query: Driver not loaded."

              • Database Type: Oracle

              • Database Connection Driver: QODBC

              • Programming Language: c++

              This is my connection function :

              bool connexion::connect(){
              bool test=false;
                   QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
                   db.setDatabaseName("ProjectDataBase");
                   db.setUserName("eclipse");
                   db.setPassword("eclipse");
              
                   if (db.open())
                   {
                       test=true;
                   }
              
               return  test ;
              }
              

              This is my insert and display funtions :

              /*DISPLAY*/
              QSqlQueryModel * client::display_all_clients(){
                  QSqlQueryModel *model = new QSqlQueryModel;
                  model->setQuery("SELECT * FROM CLIENTS");
                  if (model->lastError().isValid()) {
                      qDebug() << "Error executing query:" << model->lastError().text();
                  }
                  model->setHeaderData(0, Qt::Horizontal, QObject::tr("IDENTIFIANT"));
                  model->setHeaderData(1, Qt::Horizontal, QObject::tr("FIRST NAME"));
                  model->setHeaderData(2, Qt::Horizontal, QObject::tr("NAME"));
                  model->setHeaderData(3, Qt::Horizontal, QObject::tr("DATE OF BIRTH"));
                  return model ;
              }
              /*ADD*/
              bool client::add_client() {
                  QSqlQuery query;
                  query.prepare("INSERT INTO CLIENTS (CIN, FIRSTNAME, NAME, DOB) "
                                "VALUES (?, ?, ?, ?)");
                  query.bindValue(0, cin);
                  query.bindValue(1, firstName);
                  query.bindValue(2, name);
                  query.bindValue(3, dob);
                  return query.exec();
              }
              

              Thank you in advance for your time and assistance.

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by JonB
              #6

              @eclispe said in Error executing query: "Driver not loaded" - Need Assistance:

              I'm currently facing an issue where I can insert data into my database successfully, but encountering difficulties when trying to read or retrieve data .

              I do not believe this. I do not believe an INSERT works but a SELECT does not.

              As @Christian-Ehrlicher says. Please provide an actual complete minimal example of your code, not snippets.

              1 Reply Last reply
              0
              • E Offline
                E Offline
                eclispe
                wrote on last edited by
                #7

                All right @Christian-Ehrlicher @JonB , here is my complete code :

                • headers :

                connexion.h :

                #ifndef CONNEXION_H
                #define CONNEXION_H
                #include <QSqlDatabase>
                #include <QSqlError>
                #include <QSqlQuery>
                class connexion
                {
                public:
                    connexion();
                    bool connect();
                };
                
                #endif // CONNEXION_H
                

                client .h :

                #ifndef CLIENT_H
                #define CLIENT_H
                #include<QString>
                #include<QSqlQuery>
                #include<QSqlQueryModel>
                #include<QDebug>
                #include<QObject>
                #include "connexion.h"
                class client 
                {
                private :
                   int cin  ;
                   QString name ;
                   QString firstName ;
                   QString dob ;
                public:
                 /*constructor*/
                client();
                client(int , QString ,QString ,QString);
                /* getters */
                int getCin();
                QString getName();
                QString getFirstName();
                QString getDateOfBirth();
                /* setters */
                void setCin(int cin);
                void setName(QString name);
                void setFirstName(QString firstName);
                void setDateOfBirth(QString dob);
                /* CRUD */
                QSqlQueryModel * display_all_clients();
                bool add_client();
                bool delete_client(int cin);
                bool update_client();
                };
                
                #endif // CLIENT_H
                
                

                mainwindow.h :

                #ifndef MAINWINDOW_H
                #define MAINWINDOW_H
                #include <QMainWindow>
                #include <QStackedWidget>
                #include <QPushButton>
                #include <QTableWidget>
                #include <QApplication>
                #include <QMessageBox>
                #include <iostream>
                #include"client.h"
                #include "connexion.h"
                QT_BEGIN_NAMESPACE
                namespace Ui {
                class MainWindow;
                }
                QT_END_NAMESPACE
                
                class MainWindow : public QMainWindow
                {
                    Q_OBJECT
                
                public:
                    MainWindow(QWidget *parent = nullptr);
                    ~MainWindow();
                private slots:
                    void on_employees_clicked();
                
                    void on_clients_clicked();
                
                    void on_stock_clicked();
                
                    void on_settings_clicked();
                
                    void on_about_us_clicked();
                
                    void on_home_clicked();
                
                    void on_home_2_clicked();
                
                    void on_employees_2_clicked();
                
                    void on_clients_2_clicked();
                
                    void on_stock_2_clicked();
                
                    void on_settings_2_clicked();
                
                    void on_about_us_2_clicked();
                
                    void on_home_3_clicked();
                
                    void on_employees_3_clicked();
                
                    void on_clients_3_clicked();
                
                    void on_stock_3_clicked();
                
                    void on_settings_3_clicked();
                
                    void on_about_us_3_clicked();
                    void on_home_4_clicked();
                
                    void on_employees_4_clicked();
                
                    void on_clients_4_clicked();
                
                    void on_stock_4_clicked();
                
                    void on_settings_4_clicked();
                
                    void on_about_us_4_clicked();
                    void on_home_5_clicked();
                
                    void on_employees_5_clicked();
                
                    void on_clients_5_clicked();
                
                    void on_stock_5_clicked();
                
                    void on_settings_5_clicked();
                
                    void on_about_us_5_clicked();
                    void on_home_6_clicked();
                
                    void on_employees_6_clicked();
                
                    void on_clients_6_clicked();
                
                    void on_stock_6_clicked();
                
                    void on_settings_6_clicked();
                
                    void on_about_us_6_clicked();
                
                    void on_list_op_clicked();
                
                    void on_add_op_clicked();
                
                    void on_up_op_clicked();
                
                    void on_del_op_clicked();
                
                    void on_list_op_1_clicked();
                
                    void on_add_op_1_clicked();
                
                    void on_up_op_1_clicked();
                
                    void on_del_op_1_clicked();
                    void on_list_op_2_clicked();
                
                    void on_add_op_2_clicked();
                
                    void on_up_op_2_clicked();
                
                    void on_del_op_2_clicked();
                    void on_list_op_3_clicked();
                
                    void on_add_op_3_clicked();
                
                    void on_up_op_3_clicked();
                
                    void on_del_op_3_clicked();
                    void on_add_val_clicked();
                
                private:
                    Ui::MainWindow *ui;
                    client myclient;
                };
                #endif // MAINWINDOW_H
                
                
                • sources :

                connexion.cpp :

                #include "connexion.h"
                
                connexion::connexion()
                {
                
                }
                bool connexion::connect(){
                bool test=false;
                     QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
                     db.setDatabaseName("ProjectDataBase");
                     db.setUserName("eclipse");
                     db.setPassword("eclipse");
                
                     if (db.open())
                     {
                         test=true;
                     }
                
                 return  test ;
                }
                

                client.cpp :

                #include "client.h"
                // parameterized constructor
                client::client(int cin , QString name , QString firstName , QString dob)
                {
                    this->cin = cin;
                    this->name = name;
                    this->firstName = firstName ;
                    this->dob = dob ;
                }
                //default constructor
                client::client()
                {
                    cin = 0;
                    name = "";
                    firstName = "";
                    dob = "";
                }
                
                /* definition of getters */
                
                int client::getCin(){
                    return cin;
                }
                QString client::getName(){
                    return name;
                }
                QString client::getFirstName(){
                    return firstName;
                }
                QString client::getDateOfBirth(){
                    return dob;
                }
                /* definition of setters */
                
                void client::setCin(int cin){
                    this->cin = cin ;
                }
                void client::setName(QString name){
                    this->name = name  ;
                }
                void client::setFirstName(QString firstName){
                    this->firstName = firstName  ;
                }
                void client::setDateOfBirth(QString dob){
                    this->dob = dob ;
                }
                /* definition of CRUD */
                /*DISPLAY*/
                QSqlQueryModel * client::display_all_clients(){
                    QSqlQueryModel *model = new QSqlQueryModel;
                    model->setQuery("SELECT * FROM CLIENTS");
                    if (model->lastError().isValid()) {
                        qDebug() << "Error executing query:" << model->lastError().text();
                    }
                    model->setHeaderData(0, Qt::Horizontal, QObject::tr("IDENTIFIANT"));
                    model->setHeaderData(1, Qt::Horizontal, QObject::tr("FIRST NAME"));
                    model->setHeaderData(2, Qt::Horizontal, QObject::tr("NAME"));
                    model->setHeaderData(3, Qt::Horizontal, QObject::tr("DATE OF BIRTH"));
                    return model ;
                }
                /*ADD*/
                bool client::add_client() {
                    QSqlQuery query;
                    query.prepare("INSERT INTO CLIENTS (CIN, FIRSTNAME, NAME, DOB) "
                                  "VALUES (?, ?, ?, ?)");
                    query.bindValue(0, cin);
                    query.bindValue(1, firstName);
                    query.bindValue(2, name);
                    query.bindValue(3, dob);
                    return query.exec();
                }
                
                /*DELETE*/
                bool client::delete_client(int cin) {
                    QSqlQuery query;
                    query.prepare("DELETE FROM CLIENTS WHERE CIN = ?");
                    query.bindValue(0, cin);
                    return query.exec();
                }
                

                mainwindow.cpp :

                #include "mainwindow.h"
                #include "./ui_mainwindow.h"
                #include "client.h"
                MainWindow::MainWindow(QWidget *parent)
                    : QMainWindow(parent)
                    , ui(new Ui::MainWindow)
                {
                
                    ui->setupUi(this);
                    ui->stackedWidget->setCurrentWidget(ui->home_page);
                    qDebug() << QSqlDatabase::drivers();
                    /*display clients opration*/
                    ui->clients_table->setModel(myclient.display_all_clients());
                    /*end of display clients opration*/
                }
                
                MainWindow::~MainWindow()
                {
                    delete ui;
                }
                /* insert client button*/
                void MainWindow::on_add_val_clicked()
                {
                    int cin = ui->cin_in->text().toInt();
                    QString name = ui->name_in->text();
                    QString firstName = ui->firstname_in->text();
                    QString dob = ui->dob_in->text();
                    client myClient(cin,name,firstName,dob);
                    bool operation_result = myClient.add_client();
                    if(operation_result == true){
                        std::cout << "insert done" << std::endl;
                    }
                    else{
                        std::cout << "insert not done" << std::endl;
                    }
                }
                /* endof insert client button*/
                /*navigation bar operations*/
                /*home page nav*/
                
                void MainWindow::on_home_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->home_page);
                }
                void MainWindow::on_employees_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->employees_page);
                }
                void MainWindow::on_clients_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->clients_page);
                }
                void MainWindow::on_stock_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->stock_page);
                }
                void MainWindow::on_settings_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->settings_page);
                }
                void MainWindow::on_about_us_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                }
                
                /*employees page nav*/
                
                void MainWindow::on_home_2_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->home_page);
                }
                void MainWindow::on_employees_2_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->employees_page);
                }
                void MainWindow::on_clients_2_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->clients_page);
                }
                void MainWindow::on_stock_2_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->stock_page);
                }
                void MainWindow::on_settings_2_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->settings_page);
                }
                void MainWindow::on_about_us_2_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                }
                /* employer operations*/
                /*list page*/
                void MainWindow::on_list_op_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->list);
                }
                
                void MainWindow::on_add_op_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->add);
                }
                
                void MainWindow::on_up_op_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->update);
                }
                
                void MainWindow::on_del_op_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->delet);
                }
                /*add page*/
                void MainWindow::on_list_op_1_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->list);
                }
                
                void MainWindow::on_add_op_1_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->add);
                }
                
                void MainWindow::on_up_op_1_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->update);
                }
                
                void MainWindow::on_del_op_1_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->delet);
                }
                /*update page*/
                
                void MainWindow::on_list_op_2_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->list);
                }
                
                void MainWindow::on_add_op_2_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->add);
                }
                
                void MainWindow::on_up_op_2_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->update);
                }
                
                void MainWindow::on_del_op_2_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->delet);
                }
                /*delete page*/
                void MainWindow::on_list_op_3_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->list);
                }
                
                void MainWindow::on_add_op_3_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->add);
                }
                
                void MainWindow::on_up_op_3_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->update);
                }
                
                void MainWindow::on_del_op_3_clicked()
                {
                    ui->employees_operations->setCurrentWidget(ui->delet);
                }
                /*clients page nav*/
                
                void MainWindow::on_home_3_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->home_page);
                }
                void MainWindow::on_employees_3_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->employees_page);
                }
                void MainWindow::on_clients_3_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->clients_page);
                }
                void MainWindow::on_stock_3_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->stock_page);
                }
                void MainWindow::on_settings_3_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->settings_page);
                }
                void MainWindow::on_about_us_3_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                }
                /*stock page nav*/
                
                void MainWindow::on_home_4_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->home_page);
                }
                void MainWindow::on_employees_4_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->employees_page);
                }
                void MainWindow::on_clients_4_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->clients_page);
                }
                void MainWindow::on_stock_4_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->stock_page);
                }
                void MainWindow::on_settings_4_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->settings_page);
                }
                void MainWindow::on_about_us_4_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                }
                /*abouts us page nav*/
                
                void MainWindow::on_home_5_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->home_page);
                }
                void MainWindow::on_employees_5_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->employees_page);
                }
                void MainWindow::on_clients_5_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->clients_page);
                }
                void MainWindow::on_stock_5_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->stock_page);
                }
                void MainWindow::on_settings_5_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->settings_page);
                }
                void MainWindow::on_about_us_5_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                }
                /*employees page nav*/
                
                void MainWindow::on_home_6_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->home_page);
                }
                void MainWindow::on_employees_6_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->employees_page);
                }
                void MainWindow::on_clients_6_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->clients_page);
                }
                void MainWindow::on_stock_6_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->stock_page);
                }
                void MainWindow::on_settings_6_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->settings_page);
                }
                void MainWindow::on_about_us_6_clicked()
                {
                    ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                }
                

                main.cpp

                #include "mainwindow.h"
                #include "connexion.h"
                int main(int argc, char *argv[])
                {
                    QApplication a(argc, argv);
                    MainWindow w;
                       connexion c;
                       bool test=c.connect();
                       if(test)
                       {w.show();
                           QMessageBox::information(nullptr, QObject::tr("database is open"),
                                       QObject::tr("connection successful.\n"
                                                   "Click Cancel to exit."), QMessageBox::Cancel);
                
                   }
                       else
                           QMessageBox::critical(nullptr, QObject::tr("database is not open"),
                                       QObject::tr("connection failed.\n"
                                                   "Click Cancel to exit."), QMessageBox::Cancel);
                
                    return a.exec();
                }
                

                1aebad83-e81d-41b5-ac8c-931029730147-image.png
                ea6d26a8-3579-468a-94d7-bb9cd23049f0-image.png

                Christian EhrlicherC 1 Reply Last reply
                0
                • E eclispe

                  All right @Christian-Ehrlicher @JonB , here is my complete code :

                  • headers :

                  connexion.h :

                  #ifndef CONNEXION_H
                  #define CONNEXION_H
                  #include <QSqlDatabase>
                  #include <QSqlError>
                  #include <QSqlQuery>
                  class connexion
                  {
                  public:
                      connexion();
                      bool connect();
                  };
                  
                  #endif // CONNEXION_H
                  

                  client .h :

                  #ifndef CLIENT_H
                  #define CLIENT_H
                  #include<QString>
                  #include<QSqlQuery>
                  #include<QSqlQueryModel>
                  #include<QDebug>
                  #include<QObject>
                  #include "connexion.h"
                  class client 
                  {
                  private :
                     int cin  ;
                     QString name ;
                     QString firstName ;
                     QString dob ;
                  public:
                   /*constructor*/
                  client();
                  client(int , QString ,QString ,QString);
                  /* getters */
                  int getCin();
                  QString getName();
                  QString getFirstName();
                  QString getDateOfBirth();
                  /* setters */
                  void setCin(int cin);
                  void setName(QString name);
                  void setFirstName(QString firstName);
                  void setDateOfBirth(QString dob);
                  /* CRUD */
                  QSqlQueryModel * display_all_clients();
                  bool add_client();
                  bool delete_client(int cin);
                  bool update_client();
                  };
                  
                  #endif // CLIENT_H
                  
                  

                  mainwindow.h :

                  #ifndef MAINWINDOW_H
                  #define MAINWINDOW_H
                  #include <QMainWindow>
                  #include <QStackedWidget>
                  #include <QPushButton>
                  #include <QTableWidget>
                  #include <QApplication>
                  #include <QMessageBox>
                  #include <iostream>
                  #include"client.h"
                  #include "connexion.h"
                  QT_BEGIN_NAMESPACE
                  namespace Ui {
                  class MainWindow;
                  }
                  QT_END_NAMESPACE
                  
                  class MainWindow : public QMainWindow
                  {
                      Q_OBJECT
                  
                  public:
                      MainWindow(QWidget *parent = nullptr);
                      ~MainWindow();
                  private slots:
                      void on_employees_clicked();
                  
                      void on_clients_clicked();
                  
                      void on_stock_clicked();
                  
                      void on_settings_clicked();
                  
                      void on_about_us_clicked();
                  
                      void on_home_clicked();
                  
                      void on_home_2_clicked();
                  
                      void on_employees_2_clicked();
                  
                      void on_clients_2_clicked();
                  
                      void on_stock_2_clicked();
                  
                      void on_settings_2_clicked();
                  
                      void on_about_us_2_clicked();
                  
                      void on_home_3_clicked();
                  
                      void on_employees_3_clicked();
                  
                      void on_clients_3_clicked();
                  
                      void on_stock_3_clicked();
                  
                      void on_settings_3_clicked();
                  
                      void on_about_us_3_clicked();
                      void on_home_4_clicked();
                  
                      void on_employees_4_clicked();
                  
                      void on_clients_4_clicked();
                  
                      void on_stock_4_clicked();
                  
                      void on_settings_4_clicked();
                  
                      void on_about_us_4_clicked();
                      void on_home_5_clicked();
                  
                      void on_employees_5_clicked();
                  
                      void on_clients_5_clicked();
                  
                      void on_stock_5_clicked();
                  
                      void on_settings_5_clicked();
                  
                      void on_about_us_5_clicked();
                      void on_home_6_clicked();
                  
                      void on_employees_6_clicked();
                  
                      void on_clients_6_clicked();
                  
                      void on_stock_6_clicked();
                  
                      void on_settings_6_clicked();
                  
                      void on_about_us_6_clicked();
                  
                      void on_list_op_clicked();
                  
                      void on_add_op_clicked();
                  
                      void on_up_op_clicked();
                  
                      void on_del_op_clicked();
                  
                      void on_list_op_1_clicked();
                  
                      void on_add_op_1_clicked();
                  
                      void on_up_op_1_clicked();
                  
                      void on_del_op_1_clicked();
                      void on_list_op_2_clicked();
                  
                      void on_add_op_2_clicked();
                  
                      void on_up_op_2_clicked();
                  
                      void on_del_op_2_clicked();
                      void on_list_op_3_clicked();
                  
                      void on_add_op_3_clicked();
                  
                      void on_up_op_3_clicked();
                  
                      void on_del_op_3_clicked();
                      void on_add_val_clicked();
                  
                  private:
                      Ui::MainWindow *ui;
                      client myclient;
                  };
                  #endif // MAINWINDOW_H
                  
                  
                  • sources :

                  connexion.cpp :

                  #include "connexion.h"
                  
                  connexion::connexion()
                  {
                  
                  }
                  bool connexion::connect(){
                  bool test=false;
                       QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
                       db.setDatabaseName("ProjectDataBase");
                       db.setUserName("eclipse");
                       db.setPassword("eclipse");
                  
                       if (db.open())
                       {
                           test=true;
                       }
                  
                   return  test ;
                  }
                  

                  client.cpp :

                  #include "client.h"
                  // parameterized constructor
                  client::client(int cin , QString name , QString firstName , QString dob)
                  {
                      this->cin = cin;
                      this->name = name;
                      this->firstName = firstName ;
                      this->dob = dob ;
                  }
                  //default constructor
                  client::client()
                  {
                      cin = 0;
                      name = "";
                      firstName = "";
                      dob = "";
                  }
                  
                  /* definition of getters */
                  
                  int client::getCin(){
                      return cin;
                  }
                  QString client::getName(){
                      return name;
                  }
                  QString client::getFirstName(){
                      return firstName;
                  }
                  QString client::getDateOfBirth(){
                      return dob;
                  }
                  /* definition of setters */
                  
                  void client::setCin(int cin){
                      this->cin = cin ;
                  }
                  void client::setName(QString name){
                      this->name = name  ;
                  }
                  void client::setFirstName(QString firstName){
                      this->firstName = firstName  ;
                  }
                  void client::setDateOfBirth(QString dob){
                      this->dob = dob ;
                  }
                  /* definition of CRUD */
                  /*DISPLAY*/
                  QSqlQueryModel * client::display_all_clients(){
                      QSqlQueryModel *model = new QSqlQueryModel;
                      model->setQuery("SELECT * FROM CLIENTS");
                      if (model->lastError().isValid()) {
                          qDebug() << "Error executing query:" << model->lastError().text();
                      }
                      model->setHeaderData(0, Qt::Horizontal, QObject::tr("IDENTIFIANT"));
                      model->setHeaderData(1, Qt::Horizontal, QObject::tr("FIRST NAME"));
                      model->setHeaderData(2, Qt::Horizontal, QObject::tr("NAME"));
                      model->setHeaderData(3, Qt::Horizontal, QObject::tr("DATE OF BIRTH"));
                      return model ;
                  }
                  /*ADD*/
                  bool client::add_client() {
                      QSqlQuery query;
                      query.prepare("INSERT INTO CLIENTS (CIN, FIRSTNAME, NAME, DOB) "
                                    "VALUES (?, ?, ?, ?)");
                      query.bindValue(0, cin);
                      query.bindValue(1, firstName);
                      query.bindValue(2, name);
                      query.bindValue(3, dob);
                      return query.exec();
                  }
                  
                  /*DELETE*/
                  bool client::delete_client(int cin) {
                      QSqlQuery query;
                      query.prepare("DELETE FROM CLIENTS WHERE CIN = ?");
                      query.bindValue(0, cin);
                      return query.exec();
                  }
                  

                  mainwindow.cpp :

                  #include "mainwindow.h"
                  #include "./ui_mainwindow.h"
                  #include "client.h"
                  MainWindow::MainWindow(QWidget *parent)
                      : QMainWindow(parent)
                      , ui(new Ui::MainWindow)
                  {
                  
                      ui->setupUi(this);
                      ui->stackedWidget->setCurrentWidget(ui->home_page);
                      qDebug() << QSqlDatabase::drivers();
                      /*display clients opration*/
                      ui->clients_table->setModel(myclient.display_all_clients());
                      /*end of display clients opration*/
                  }
                  
                  MainWindow::~MainWindow()
                  {
                      delete ui;
                  }
                  /* insert client button*/
                  void MainWindow::on_add_val_clicked()
                  {
                      int cin = ui->cin_in->text().toInt();
                      QString name = ui->name_in->text();
                      QString firstName = ui->firstname_in->text();
                      QString dob = ui->dob_in->text();
                      client myClient(cin,name,firstName,dob);
                      bool operation_result = myClient.add_client();
                      if(operation_result == true){
                          std::cout << "insert done" << std::endl;
                      }
                      else{
                          std::cout << "insert not done" << std::endl;
                      }
                  }
                  /* endof insert client button*/
                  /*navigation bar operations*/
                  /*home page nav*/
                  
                  void MainWindow::on_home_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->home_page);
                  }
                  void MainWindow::on_employees_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->employees_page);
                  }
                  void MainWindow::on_clients_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->clients_page);
                  }
                  void MainWindow::on_stock_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->stock_page);
                  }
                  void MainWindow::on_settings_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->settings_page);
                  }
                  void MainWindow::on_about_us_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                  }
                  
                  /*employees page nav*/
                  
                  void MainWindow::on_home_2_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->home_page);
                  }
                  void MainWindow::on_employees_2_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->employees_page);
                  }
                  void MainWindow::on_clients_2_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->clients_page);
                  }
                  void MainWindow::on_stock_2_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->stock_page);
                  }
                  void MainWindow::on_settings_2_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->settings_page);
                  }
                  void MainWindow::on_about_us_2_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                  }
                  /* employer operations*/
                  /*list page*/
                  void MainWindow::on_list_op_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->list);
                  }
                  
                  void MainWindow::on_add_op_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->add);
                  }
                  
                  void MainWindow::on_up_op_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->update);
                  }
                  
                  void MainWindow::on_del_op_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->delet);
                  }
                  /*add page*/
                  void MainWindow::on_list_op_1_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->list);
                  }
                  
                  void MainWindow::on_add_op_1_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->add);
                  }
                  
                  void MainWindow::on_up_op_1_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->update);
                  }
                  
                  void MainWindow::on_del_op_1_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->delet);
                  }
                  /*update page*/
                  
                  void MainWindow::on_list_op_2_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->list);
                  }
                  
                  void MainWindow::on_add_op_2_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->add);
                  }
                  
                  void MainWindow::on_up_op_2_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->update);
                  }
                  
                  void MainWindow::on_del_op_2_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->delet);
                  }
                  /*delete page*/
                  void MainWindow::on_list_op_3_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->list);
                  }
                  
                  void MainWindow::on_add_op_3_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->add);
                  }
                  
                  void MainWindow::on_up_op_3_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->update);
                  }
                  
                  void MainWindow::on_del_op_3_clicked()
                  {
                      ui->employees_operations->setCurrentWidget(ui->delet);
                  }
                  /*clients page nav*/
                  
                  void MainWindow::on_home_3_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->home_page);
                  }
                  void MainWindow::on_employees_3_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->employees_page);
                  }
                  void MainWindow::on_clients_3_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->clients_page);
                  }
                  void MainWindow::on_stock_3_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->stock_page);
                  }
                  void MainWindow::on_settings_3_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->settings_page);
                  }
                  void MainWindow::on_about_us_3_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                  }
                  /*stock page nav*/
                  
                  void MainWindow::on_home_4_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->home_page);
                  }
                  void MainWindow::on_employees_4_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->employees_page);
                  }
                  void MainWindow::on_clients_4_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->clients_page);
                  }
                  void MainWindow::on_stock_4_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->stock_page);
                  }
                  void MainWindow::on_settings_4_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->settings_page);
                  }
                  void MainWindow::on_about_us_4_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                  }
                  /*abouts us page nav*/
                  
                  void MainWindow::on_home_5_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->home_page);
                  }
                  void MainWindow::on_employees_5_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->employees_page);
                  }
                  void MainWindow::on_clients_5_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->clients_page);
                  }
                  void MainWindow::on_stock_5_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->stock_page);
                  }
                  void MainWindow::on_settings_5_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->settings_page);
                  }
                  void MainWindow::on_about_us_5_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                  }
                  /*employees page nav*/
                  
                  void MainWindow::on_home_6_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->home_page);
                  }
                  void MainWindow::on_employees_6_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->employees_page);
                  }
                  void MainWindow::on_clients_6_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->clients_page);
                  }
                  void MainWindow::on_stock_6_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->stock_page);
                  }
                  void MainWindow::on_settings_6_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->settings_page);
                  }
                  void MainWindow::on_about_us_6_clicked()
                  {
                      ui->stackedWidget->setCurrentWidget(ui->about_us_page);
                  }
                  

                  main.cpp

                  #include "mainwindow.h"
                  #include "connexion.h"
                  int main(int argc, char *argv[])
                  {
                      QApplication a(argc, argv);
                      MainWindow w;
                         connexion c;
                         bool test=c.connect();
                         if(test)
                         {w.show();
                             QMessageBox::information(nullptr, QObject::tr("database is open"),
                                         QObject::tr("connection successful.\n"
                                                     "Click Cancel to exit."), QMessageBox::Cancel);
                  
                     }
                         else
                             QMessageBox::critical(nullptr, QObject::tr("database is not open"),
                                         QObject::tr("connection failed.\n"
                                                     "Click Cancel to exit."), QMessageBox::Cancel);
                  
                      return a.exec();
                  }
                  

                  1aebad83-e81d-41b5-ac8c-931029730147-image.png
                  ea6d26a8-3579-468a-94d7-bb9cd23049f0-image.png

                  Christian EhrlicherC Online
                  Christian EhrlicherC Online
                  Christian Ehrlicher
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @eclispe So as I said. You execute a query before opening the database connection. Fix your code.

                  Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                  Visit the Qt Academy at https://academy.qt.io/catalog

                  1 Reply Last reply
                  2
                  • E Offline
                    E Offline
                    eclispe
                    wrote on last edited by
                    #9

                    Yeah @Christian-Ehrlicher , the issue is solved
                    11b5bec8-83a1-4eeb-ae49-591df9bc13e8-image.png
                    thnak you @Christian-Ehrlicher ! and Thanks to all of you for your help with this problem; I truly appreciate your time and effort.

                    • This is the correct version of the code (not perfect but it works ) for anyone who may encounter the same problem :

                    connection.h :

                    #ifndef CONNEXION_H
                    #define CONNEXION_H
                    #include <QSqlDatabase>
                    #include <QSqlError>
                    #include <QSqlQuery>
                    class connexion
                    {
                    public:
                        QSqlDatabase db ;
                        connexion();
                        bool connect();
                        bool check_data_base();
                    };
                    
                    #endif // CONNEXION_H
                    
                    

                    connexion.cpp :

                    #include "connexion.h"
                    
                    connexion::connexion()
                    {
                    
                    }
                    bool connexion::connect() {
                        bool test = false;
                        db = QSqlDatabase::addDatabase("QODBC");
                        db.setDatabaseName("ProjectDataBase");
                        db.setUserName("eclipse");
                        db.setPassword("eclipse");
                    
                        if (db.open()) {
                            test = true;
                        }
                    
                        return test;
                    }
                    
                    bool connexion::check_data_base(){
                        if (db.isValid() && db.isOpen()) {
                            return true;
                        } else {
                            return false;
                        }
                    }
                    

                    mainwindow.cpp :

                    #include "mainwindow.h"
                    #include "./ui_mainwindow.h"
                    #include "client.h"
                    MainWindow::MainWindow(QWidget *parent)
                        : QMainWindow(parent)
                        , ui(new Ui::MainWindow)
                    {
                    
                        ui->setupUi(this);
                        ui->stackedWidget->setCurrentWidget(ui->home_page);
                        qDebug() << QSqlDatabase::drivers();
                        connexion c;
                        c.connect();
                        if (c.check_data_base()) {
                                ui->clients_table->setModel(myclient.display_all_clients());
                            } else {
                                qDebug() << "database is not open";
                            }
                    }
                    
                    MainWindow::~MainWindow()
                    {
                        delete ui;
                    }
                    //rest of code .. 
                    

                    main.cpp :

                    #include "mainwindow.h"
                    #include "connexion.h"
                    int main(int argc, char *argv[])
                    {
                        QApplication a(argc, argv);
                        MainWindow w;
                        w.show();
                    
                        return a.exec();
                    }
                    
                    SGaistS 1 Reply Last reply
                    0
                    • E eclispe has marked this topic as solved on
                    • E eclispe

                      Yeah @Christian-Ehrlicher , the issue is solved
                      11b5bec8-83a1-4eeb-ae49-591df9bc13e8-image.png
                      thnak you @Christian-Ehrlicher ! and Thanks to all of you for your help with this problem; I truly appreciate your time and effort.

                      • This is the correct version of the code (not perfect but it works ) for anyone who may encounter the same problem :

                      connection.h :

                      #ifndef CONNEXION_H
                      #define CONNEXION_H
                      #include <QSqlDatabase>
                      #include <QSqlError>
                      #include <QSqlQuery>
                      class connexion
                      {
                      public:
                          QSqlDatabase db ;
                          connexion();
                          bool connect();
                          bool check_data_base();
                      };
                      
                      #endif // CONNEXION_H
                      
                      

                      connexion.cpp :

                      #include "connexion.h"
                      
                      connexion::connexion()
                      {
                      
                      }
                      bool connexion::connect() {
                          bool test = false;
                          db = QSqlDatabase::addDatabase("QODBC");
                          db.setDatabaseName("ProjectDataBase");
                          db.setUserName("eclipse");
                          db.setPassword("eclipse");
                      
                          if (db.open()) {
                              test = true;
                          }
                      
                          return test;
                      }
                      
                      bool connexion::check_data_base(){
                          if (db.isValid() && db.isOpen()) {
                              return true;
                          } else {
                              return false;
                          }
                      }
                      

                      mainwindow.cpp :

                      #include "mainwindow.h"
                      #include "./ui_mainwindow.h"
                      #include "client.h"
                      MainWindow::MainWindow(QWidget *parent)
                          : QMainWindow(parent)
                          , ui(new Ui::MainWindow)
                      {
                      
                          ui->setupUi(this);
                          ui->stackedWidget->setCurrentWidget(ui->home_page);
                          qDebug() << QSqlDatabase::drivers();
                          connexion c;
                          c.connect();
                          if (c.check_data_base()) {
                                  ui->clients_table->setModel(myclient.display_all_clients());
                              } else {
                                  qDebug() << "database is not open";
                              }
                      }
                      
                      MainWindow::~MainWindow()
                      {
                          delete ui;
                      }
                      //rest of code .. 
                      

                      main.cpp :

                      #include "mainwindow.h"
                      #include "connexion.h"
                      int main(int argc, char *argv[])
                      {
                          QApplication a(argc, argv);
                          MainWindow w;
                          w.show();
                      
                          return a.exec();
                      }
                      
                      SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #10

                      @eclispe one thing: don't keep a QSqlDatabase instance as member variables. It's all explained in the documentation why.

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      E 1 Reply Last reply
                      0
                      • SGaistS SGaist

                        @eclispe one thing: don't keep a QSqlDatabase instance as member variables. It's all explained in the documentation why.

                        E Offline
                        E Offline
                        eclispe
                        wrote on last edited by
                        #11

                        @SGaist Roger that

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved