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. Qt SQL Class
Forum Updated to NodeBB v4.3 + New Features

Qt SQL Class

Scheduled Pinned Locked Moved Unsolved General and Desktop
28 Posts 5 Posters 3.0k 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.
  • K Offline
    K Offline
    Kris Revi
    wrote on 24 Jul 2022, 18:49 last edited by Kris Revi
    #1

    So to separate the SQL code from mainwindow.cpp i made a sql class but my problems comes when i try to access my SQL table (this has been tested and working when the code was all in the mainwindow.cpp)

    sql.h

    #ifndef SQL_H
    #define SQL_H
    
    #include <QtSql>
    
    class sql
    {
    public:
        sql();
        QSqlDatabase db;
        QSqlQuery query;
    
        void doLogin(QString username, QString password);
        void initSQL(QString databaseType, QString databaseFileName);
    
    };
    
    #endif // SQL_H
    

    sql.cpp

    #include "sql.h"
    
    sql::sql()
    {
    
    }
    
    void sql::initSQL(QString databaseType, QString databaseFileName)
    {
        db = QSqlDatabase::addDatabase(databaseType);
        db.setDatabaseName(databaseFileName);
    
        if (db.open())
        {
            qDebug() << "-------------------------------------------------------------------------";
            qDebug() << "Connection successfull";
            qDebug() << "-------------------------------------------------------------------------";
        }
        else
        {
            qDebug() << "-------------------------------------------------------------------------";
            qDebug() << "Connection failed";
            qDebug() << "-------------------------------------------------------------------------";
        }
    
    }
    
    void sql::doLogin(QString username, QString password)
    {
        if (query.exec(QString("SELECT * from users WHERE username = '%1' AND password = '%2' ").arg(username, password)))
        {
            qDebug() << "You are now logged in.";
        }
        else
        {
            qDebug() << "Login failed. Invalid username or password.";
        }
    
    }
    
    

    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    
    #include "sql.h"
    
    QT_BEGIN_NAMESPACE
    namespace Ui { class MainWindow; }
    QT_END_NAMESPACE
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
        sql Sql;
    
    private:
        Ui::MainWindow *ui;
    };
    #endif // MAINWINDOW_H
    

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        Sql.initSQL("QSQLITE", "C:/crap/db.sqlite");
    
        connect(ui->pushButtonLogin, &QPushButton::clicked, [=]() { Sql.doLogin(ui->usernameText->text(), ui->passwordText->text()); });
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    

    but all i get is;

    -------------------------------------------------------------------------
    Connection successfull
    -------------------------------------------------------------------------
    QSqlQuery::exec: database not open
    Login failed. Invalid username or password.
    

    what am i missing?

    1 Reply Last reply
    0
    • C Offline
      C Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on 24 Jul 2022, 19:04 last edited by
      #2

      QSqlQuery has some functions to return the speicifc error. I would guess the table does not exist.
      Also better use prepared queries - otherwise my username is dontknow'; drop table users;

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

      K 1 Reply Last reply 24 Jul 2022, 19:19
      1
      • C Christian Ehrlicher
        24 Jul 2022, 19:04

        QSqlQuery has some functions to return the speicifc error. I would guess the table does not exist.
        Also better use prepared queries - otherwise my username is dontknow'; drop table users;

        K Offline
        K Offline
        Kris Revi
        wrote on 24 Jul 2022, 19:19 last edited by
        #3

        @Christian-Ehrlicher The table does exsist as i stated above (this has been tested with all the code inside themainwindow class) and it worked fine :S for some reason even tho it says Connection successfull i guess the SqlQuery does not see / get that from mainwindow class :S

        C 1 Reply Last reply 24 Jul 2022, 19:25
        0
        • K Kris Revi
          24 Jul 2022, 19:19

          @Christian-Ehrlicher The table does exsist as i stated above (this has been tested with all the code inside themainwindow class) and it worked fine :S for some reason even tho it says Connection successfull i guess the SqlQuery does not see / get that from mainwindow class :S

          C Offline
          C Offline
          Christian Ehrlicher
          Lifetime Qt Champion
          wrote on 24 Jul 2022, 19:25 last edited by
          #4

          @Kris-Revi I don't care what you guess - add the correct error handling how I told you in my first post and look what it tells you.

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

          K 1 Reply Last reply 24 Jul 2022, 19:32
          0
          • C Christian Ehrlicher
            24 Jul 2022, 19:25

            @Kris-Revi I don't care what you guess - add the correct error handling how I told you in my first post and look what it tells you.

            K Offline
            K Offline
            Kris Revi
            wrote on 24 Jul 2022, 19:32 last edited by Kris Revi
            #5

            hmmm why do i get Driver not loaded now (from SqlError) :S just because i made a class for the SQL code....

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on 24 Jul 2022, 19:33 last edited by
              #6

              Hi,

              Your SQL class design is wrong. First thing, don't store a local QSqlDatabase object as explained in the class documentation.

              Next, on the QSqlQuery side, again, don't store it as class member. Create these objects where you actually use them. What happens here is that the QSqlQuery object is created at your class construction time, before you create your QSqlDatabase object. It's using the default connection which has not yet been created so it's using an invalid database connection hence the error you have.

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

              K 1 Reply Last reply 24 Jul 2022, 20:15
              3
              • SGaistS SGaist
                24 Jul 2022, 19:33

                Hi,

                Your SQL class design is wrong. First thing, don't store a local QSqlDatabase object as explained in the class documentation.

                Next, on the QSqlQuery side, again, don't store it as class member. Create these objects where you actually use them. What happens here is that the QSqlQuery object is created at your class construction time, before you create your QSqlDatabase object. It's using the default connection which has not yet been created so it's using an invalid database connection hence the error you have.

                K Offline
                K Offline
                Kris Revi
                wrote on 24 Jul 2022, 20:15 last edited by
                #7

                @SGaist ok so i did this

                sql.h

                #ifndef SQL_H
                #define SQL_H
                
                #include <QtSql>
                
                class sql
                {
                public:
                    sql();
                
                    void connect(QSqlDatabase& db);
                    void doLogin(QString username, QString password);
                
                };
                
                #endif // SQL_H
                

                sql.cpp

                #include "sql.h"
                
                sql::sql()
                {
                
                }
                
                void sql::connect(QSqlDatabase& db)
                {
                    QString connectionName = "C:/crap/db.sqlite";
                    QString databaseType = "QSQLITE";
                    if (!QSqlDatabase::contains(connectionName))
                    {
                        db = QSqlDatabase::addDatabase(databaseType, connectionName);
                        db.setDatabaseName(connectionName);
                    }
                    else
                    {
                        db = QSqlDatabase::database(connectionName, false);
                    }
                
                }
                
                void sql::doLogin(QString username, QString password)
                {
                    QSqlQuery query;
                
                    if (query.exec(QString("SELECT * from users WHERE username = '%1' AND password = '%2' ").arg(username, password)))
                    {
                        qDebug() << "You are now logged in.";
                    }
                    else
                    {
                        qDebug() << "Login failed. Invalid username or password.";
                    }
                
                    qDebug() << query.lastError();
                
                }
                

                And then in mainwindow.cpp

                    connect(ui->pushButtonLogin, &QPushButton::clicked, [=]()
                    {
                        QSqlDatabase db;
                        Sql.connect(db);
                        if (!db.isValid())
                        {
                            qWarning() << "Database driver is not valid.";
                            return;
                        }
                        if (!db.open())
                        {
                            QSqlError sqlError = db.lastError();
                            if (sqlError.isValid())
                            {
                                qWarning() << "Can not open database, error message is:" << sqlError.text();
                            }
                
                            return ;
                        }
                        Sql.doLogin(ui->usernameText->text(),
                                    ui->passwordText->text());
                    });
                

                but i still get

                QSqlQuery::exec: database not open
                Login failed. Invalid username or password.
                QSqlError("", "Driver not loaded", "Driver not loaded")
                
                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  Christian Ehrlicher
                  Lifetime Qt Champion
                  wrote on 24 Jul 2022, 20:18 last edited by
                  #8

                  You still don't use the correct connection for your QSqlQuery... and why do you pass the connection around instead using QSqlDatabase::database() as properly explained in the documentation?

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

                  K 1 Reply Last reply 24 Jul 2022, 20:25
                  1
                  • C Christian Ehrlicher
                    24 Jul 2022, 20:18

                    You still don't use the correct connection for your QSqlQuery... and why do you pass the connection around instead using QSqlDatabase::database() as properly explained in the documentation?

                    K Offline
                    K Offline
                    Kris Revi
                    wrote on 24 Jul 2022, 20:25 last edited by
                    #9

                    @Christian-Ehrlicher happy?

                    void sql::doLogin(QString username, QString password)
                    {
                        QSqlQuery query;
                        query.prepare("SELECT * from users WHERE username = :username AND password = :password ");
                        query.bindValue(":username", username);
                        query.bindValue(":password", password);
                        
                        if (query.exec())
                        {
                            qDebug() << "You are now logged in.";
                        }
                        else
                        {
                            qDebug() << "Login failed. Invalid username or password.";
                        }
                    }
                    
                    C 1 Reply Last reply 24 Jul 2022, 20:30
                    0
                    • K Kris Revi
                      24 Jul 2022, 20:25

                      @Christian-Ehrlicher happy?

                      void sql::doLogin(QString username, QString password)
                      {
                          QSqlQuery query;
                          query.prepare("SELECT * from users WHERE username = :username AND password = :password ");
                          query.bindValue(":username", username);
                          query.bindValue(":password", password);
                          
                          if (query.exec())
                          {
                              qDebug() << "You are now logged in.";
                          }
                          else
                          {
                              qDebug() << "Login failed. Invalid username or password.";
                          }
                      }
                      
                      C Offline
                      C Offline
                      Christian Ehrlicher
                      Lifetime Qt Champion
                      wrote on 24 Jul 2022, 20:30 last edited by
                      #10

                      @Kris-Revi said in Qt SQL Class:

                      happy?

                      No, still wrong db connection...

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

                      K 1 Reply Last reply 24 Jul 2022, 20:31
                      0
                      • K Offline
                        K Offline
                        Kris Revi
                        wrote on 24 Jul 2022, 20:30 last edited by
                        #11

                        i got it working guys :)

                        1 Reply Last reply
                        0
                        • C Christian Ehrlicher
                          24 Jul 2022, 20:30

                          @Kris-Revi said in Qt SQL Class:

                          happy?

                          No, still wrong db connection...

                          K Offline
                          K Offline
                          Kris Revi
                          wrote on 24 Jul 2022, 20:31 last edited by
                          #12

                          @Christian-Ehrlicher said in Qt SQL Class:

                          No, still wrong db connection...

                          yea no shit! that part was only the "query" part you were screaming about! :P

                          but again i got it working :)

                          1 Reply Last reply
                          0
                          • K Offline
                            K Offline
                            Kris Revi
                            wrote on 25 Jul 2022, 10:57 last edited by
                            #13

                            i seem to still be stuck -.-

                            jsulmJ 1 Reply Last reply 25 Jul 2022, 11:02
                            0
                            • K Kris Revi
                              25 Jul 2022, 10:57

                              i seem to still be stuck -.-

                              jsulmJ Offline
                              jsulmJ Offline
                              jsulm
                              Lifetime Qt Champion
                              wrote on 25 Jul 2022, 11:02 last edited by
                              #14

                              @Kris-Revi said in Qt SQL Class:

                              i seem to still be stuck

                              Then provide more information about current situation

                              https://forum.qt.io/topic/113070/qt-code-of-conduct

                              K 1 Reply Last reply 25 Jul 2022, 12:52
                              0
                              • jsulmJ jsulm
                                25 Jul 2022, 11:02

                                @Kris-Revi said in Qt SQL Class:

                                i seem to still be stuck

                                Then provide more information about current situation

                                K Offline
                                K Offline
                                Kris Revi
                                wrote on 25 Jul 2022, 12:52 last edited by
                                #15

                                @jsulm said in Qt SQL Class:

                                Then provide more information about current situation

                                so have been doing some modifications from naming to code sql class to dbmanager

                                dbmanager.h

                                #ifndef DBMANAGER_H
                                #define DBMANAGER_H
                                
                                #include <QSqlDatabase>
                                
                                class DbManager
                                {
                                public:
                                    DbManager(const QString& path);
                                
                                    ~DbManager();
                                
                                    bool isOpen() const;
                                
                                    bool usernameExists(const QString& username) const;
                                
                                    void md5Hash(QString& src, QString& dest);
                                
                                private:
                                    QSqlDatabase m_db;
                                };
                                
                                #endif // DBMANAGER_H
                                

                                dbmanager.cpp

                                #include "dbmanager.h"
                                #include <QSqlQuery>
                                #include <QSqlError>
                                #include <QSqlRecord>
                                #include <QDebug>
                                
                                DbManager::DbManager(const QString &path)
                                {
                                    m_db = QSqlDatabase::addDatabase("QSQLITE");
                                    m_db.setDatabaseName(path);
                                
                                    if (!m_db.open())
                                    {
                                        qDebug() << "Error: connection with database fail";
                                    }
                                    else
                                    {
                                        qDebug() << "Database: connection ok";
                                    }
                                }
                                
                                DbManager::~DbManager()
                                {
                                    if (m_db.isOpen())
                                    {
                                        m_db.close();
                                    }
                                }
                                
                                bool DbManager::isOpen() const
                                {
                                    return m_db.isOpen();
                                }
                                
                                bool DbManager::usernameExists(const QString& username) const
                                {
                                    bool exists = false;
                                
                                    QSqlQuery checkQuery;
                                    checkQuery.prepare("SELECT * FROM users WHERE username = (:username)");
                                    checkQuery.bindValue(":username", username);
                                
                                    if (checkQuery.exec())
                                    {
                                        if (checkQuery.next())
                                        {
                                            exists = true;
                                        }
                                    }
                                    else
                                    {
                                        qDebug() << "Username does not exists : " << checkQuery.lastError();
                                    }
                                
                                    return exists;
                                }
                                

                                mainwindow.cpp

                                #include "mainwindow.h"
                                #include "ui_mainwindow.h"
                                
                                #include <dbmanager.h>
                                
                                MainWindow::MainWindow(QWidget *parent)
                                    : QMainWindow(parent)
                                    , ui(new Ui::MainWindow)
                                {
                                    ui->setupUi(this);
                                    ui->errorLabel->setVisible(false);
                                
                                    static const QString path = "C:/crap/db.sqlite";
                                
                                    connect(ui->pushButtonLogin, &QPushButton::clicked, [=]()
                                    {
                                        DbManager db(path);
                                        if (db.isOpen())
                                        {
                                            QSqlQuery query;
                                            query.prepare(QString("SELECT * FROM users WHERE username = :username AND password = :password "));
                                            query.bindValue(":username", ui->usernameText->text());
                                            query.bindValue(":password", ui->passwordText->text());
                                            query.exec();
                                
                                            if (query.size() > 0)
                                            {
                                                ui->errorLabel->setVisible(false);
                                                ui->stackedWidget->setCurrentIndex(1);
                                                QString name = query.value(1).toString();
                                                qDebug() << name << "is logged in";
                                            }
                                            else
                                            {
                                                ui->errorLabel->setVisible(true);
                                                ui->errorLabel->setText("Invalid username or password.");
                                                qWarning() << "Query Error : " << query.lastError();
                                            }
                                        }
                                    });
                                }
                                
                                MainWindow::~MainWindow()
                                {
                                    delete ui;
                                }
                                

                                so i get

                                Database: connection ok
                                Query Error :  QSqlError("", "", "") // so no errors
                                Invalid username or password.`
                                

                                the username and password is easy test and test123 so i know i put it in right

                                jsulmJ 1 Reply Last reply 25 Jul 2022, 13:29
                                0
                                • K Kris Revi
                                  25 Jul 2022, 12:52

                                  @jsulm said in Qt SQL Class:

                                  Then provide more information about current situation

                                  so have been doing some modifications from naming to code sql class to dbmanager

                                  dbmanager.h

                                  #ifndef DBMANAGER_H
                                  #define DBMANAGER_H
                                  
                                  #include <QSqlDatabase>
                                  
                                  class DbManager
                                  {
                                  public:
                                      DbManager(const QString& path);
                                  
                                      ~DbManager();
                                  
                                      bool isOpen() const;
                                  
                                      bool usernameExists(const QString& username) const;
                                  
                                      void md5Hash(QString& src, QString& dest);
                                  
                                  private:
                                      QSqlDatabase m_db;
                                  };
                                  
                                  #endif // DBMANAGER_H
                                  

                                  dbmanager.cpp

                                  #include "dbmanager.h"
                                  #include <QSqlQuery>
                                  #include <QSqlError>
                                  #include <QSqlRecord>
                                  #include <QDebug>
                                  
                                  DbManager::DbManager(const QString &path)
                                  {
                                      m_db = QSqlDatabase::addDatabase("QSQLITE");
                                      m_db.setDatabaseName(path);
                                  
                                      if (!m_db.open())
                                      {
                                          qDebug() << "Error: connection with database fail";
                                      }
                                      else
                                      {
                                          qDebug() << "Database: connection ok";
                                      }
                                  }
                                  
                                  DbManager::~DbManager()
                                  {
                                      if (m_db.isOpen())
                                      {
                                          m_db.close();
                                      }
                                  }
                                  
                                  bool DbManager::isOpen() const
                                  {
                                      return m_db.isOpen();
                                  }
                                  
                                  bool DbManager::usernameExists(const QString& username) const
                                  {
                                      bool exists = false;
                                  
                                      QSqlQuery checkQuery;
                                      checkQuery.prepare("SELECT * FROM users WHERE username = (:username)");
                                      checkQuery.bindValue(":username", username);
                                  
                                      if (checkQuery.exec())
                                      {
                                          if (checkQuery.next())
                                          {
                                              exists = true;
                                          }
                                      }
                                      else
                                      {
                                          qDebug() << "Username does not exists : " << checkQuery.lastError();
                                      }
                                  
                                      return exists;
                                  }
                                  

                                  mainwindow.cpp

                                  #include "mainwindow.h"
                                  #include "ui_mainwindow.h"
                                  
                                  #include <dbmanager.h>
                                  
                                  MainWindow::MainWindow(QWidget *parent)
                                      : QMainWindow(parent)
                                      , ui(new Ui::MainWindow)
                                  {
                                      ui->setupUi(this);
                                      ui->errorLabel->setVisible(false);
                                  
                                      static const QString path = "C:/crap/db.sqlite";
                                  
                                      connect(ui->pushButtonLogin, &QPushButton::clicked, [=]()
                                      {
                                          DbManager db(path);
                                          if (db.isOpen())
                                          {
                                              QSqlQuery query;
                                              query.prepare(QString("SELECT * FROM users WHERE username = :username AND password = :password "));
                                              query.bindValue(":username", ui->usernameText->text());
                                              query.bindValue(":password", ui->passwordText->text());
                                              query.exec();
                                  
                                              if (query.size() > 0)
                                              {
                                                  ui->errorLabel->setVisible(false);
                                                  ui->stackedWidget->setCurrentIndex(1);
                                                  QString name = query.value(1).toString();
                                                  qDebug() << name << "is logged in";
                                              }
                                              else
                                              {
                                                  ui->errorLabel->setVisible(true);
                                                  ui->errorLabel->setText("Invalid username or password.");
                                                  qWarning() << "Query Error : " << query.lastError();
                                              }
                                          }
                                      });
                                  }
                                  
                                  MainWindow::~MainWindow()
                                  {
                                      delete ui;
                                  }
                                  

                                  so i get

                                  Database: connection ok
                                  Query Error :  QSqlError("", "", "") // so no errors
                                  Invalid username or password.`
                                  

                                  the username and password is easy test and test123 so i know i put it in right

                                  jsulmJ Offline
                                  jsulmJ Offline
                                  jsulm
                                  Lifetime Qt Champion
                                  wrote on 25 Jul 2022, 13:29 last edited by
                                  #16

                                  @Kris-Revi said in Qt SQL Class:

                                  QSqlDatabase m_db;

                                  You were already told not to keep QSqlDatabase instances - why are you still doing this?

                                  "QSqlQuery query;" - you are still using default connection. You should really read more carefully what others write.

                                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  1 Reply Last reply
                                  1
                                  • SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on 25 Jul 2022, 13:30 last edited by
                                    #17

                                    You did not check that the query ran successfully.

                                    Also, as you were already explained: do not keep a QSqlDatabase class variable. It's all explained in the class details.

                                    Also, since you are using an SQLite database, ensure that the path you use is correct. If not, a new empty database will be created. This is SQLite specific and not something under Qt control.

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

                                    K 1 Reply Last reply 25 Jul 2022, 13:43
                                    1
                                    • SGaistS SGaist
                                      25 Jul 2022, 13:30

                                      You did not check that the query ran successfully.

                                      Also, as you were already explained: do not keep a QSqlDatabase class variable. It's all explained in the class details.

                                      Also, since you are using an SQLite database, ensure that the path you use is correct. If not, a new empty database will be created. This is SQLite specific and not something under Qt control.

                                      K Offline
                                      K Offline
                                      Kris Revi
                                      wrote on 25 Jul 2022, 13:43 last edited by
                                      #18

                                      @SGaist said in Qt SQL Class:

                                      Also, as you were already explained: do not keep a QSqlDatabase class variable. It's all explained in the class details.

                                      why do i see alot of examples online where people keep it in a class? is this a new thing that changed?

                                      jsulmJ 1 Reply Last reply 25 Jul 2022, 13:44
                                      0
                                      • K Kris Revi
                                        25 Jul 2022, 13:43

                                        @SGaist said in Qt SQL Class:

                                        Also, as you were already explained: do not keep a QSqlDatabase class variable. It's all explained in the class details.

                                        why do i see alot of examples online where people keep it in a class? is this a new thing that changed?

                                        jsulmJ Offline
                                        jsulmJ Offline
                                        jsulm
                                        Lifetime Qt Champion
                                        wrote on 25 Jul 2022, 13:44 last edited by
                                        #19

                                        @Kris-Revi said in Qt SQL Class:

                                        is this a new thing that changed?

                                        No. There are also bad examples out there.

                                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        K 1 Reply Last reply 25 Jul 2022, 13:46
                                        0
                                        • jsulmJ jsulm
                                          25 Jul 2022, 13:44

                                          @Kris-Revi said in Qt SQL Class:

                                          is this a new thing that changed?

                                          No. There are also bad examples out there.

                                          K Offline
                                          K Offline
                                          Kris Revi
                                          wrote on 25 Jul 2022, 13:46 last edited by
                                          #20

                                          @jsulm said in Qt SQL Class:

                                          No. There are also bad examples out there.

                                          but 90% off the examples all have it in a custom class :S how can ALL of them be bad

                                          jsulmJ 1 Reply Last reply 25 Jul 2022, 13:49
                                          0

                                          1/28

                                          24 Jul 2022, 18:49

                                          • Login

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