Error executing query: "Driver not loaded" - Need Assistance
-
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.
-
-
@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 :


-
@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 :


And from where do you call the select? From the mainwindow ctor?
-
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.
@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
INSERTworks but aSELECTdoes not.As @Christian-Ehrlicher says. Please provide an actual complete minimal example of your code, not snippets.
-
-
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_Hclient .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_Hmainwindow.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(); }

-
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_Hclient .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_Hmainwindow.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(); }

@eclispe So as I said. You execute a query before opening the database connection. Fix your code.
-
Yeah @Christian-Ehrlicher , the issue is solved

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_Hconnexion.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(); } -
E eclispe has marked this topic as solved on
-
Yeah @Christian-Ehrlicher , the issue is solved

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_Hconnexion.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(); } -
@eclispe one thing: don't keep a QSqlDatabase instance as member variables. It's all explained in the documentation why.