Search code examples
c++databasebuttonqt6

Call db.close() on Button_Click (QT/C++)


how can i close a database connction from Button_onClick funktion?

    Artikelverwaltung::Artikelverwaltung(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::Artikelverwaltung)
    {
      ...
    
        QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    ...
    }
    
    void Artikelverwaltung::on_pushButton_clicked()
    {
        db.close(); // <---- This is not working of cause. how can i do this?
}

Best regards


Solution

  • It is not working because db is a local variable in Artikelverwaltung::Artikelverwaltung you need to make it a class attribute.

    class Artikelverwaltung
    {
      private:
        QSqlDatabase m_db;
    };
    
    
    
    
    Artikelverwaltung::Artikelverwaltung(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::Artikelverwaltung)
    {
      ...
    
        m_db = QSqlDatabase::addDatabase("QODBC");
    ...
    }
    
    void Artikelverwaltung::on_pushButton_clicked()
    {
        m_db.close();
    }