Не отображается таблица базы данных в TableView

Рейтинг: 0Ответов: 0Опубликовано: 27.04.2023

При компиляции следующего кода TableView остается пустым. Не могу найти причины. Закомментированная часть кода работает как надо. Подскажите в чем ошибка. В базе данных существует таблица cadre и в ней есть строки. Dashboard базы данных показывает, что во время выполнения программы запрос приходит.

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "QSqlError"
#include "QSqlRecord"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    db= QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("localhost");
    db.setDatabaseName("ModuleCadre");
    db.setUserName("postgres");
    db.setPassword("sadmin");
    if(!db.open()){
        qDebug()<<db.lastError().text();
        return;
    }
    else {
        qDebug()<<"Success";
    }

    model= new QSqlTableModel(this,db);
    model->setTable("cadre");
    model->select();
    ui->tab->setModel(model);

//    QSqlQueryModel *model = new QSqlQueryModel;
//    model->setQuery("SELECT * FROM cadre");
//    ui->tab->setModel(model);
}

MainWindow::~MainWindow()
{
    db.close();
    delete ui;
}

mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>

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_pushButton_clicked();

private:
    Ui::MainWindow *ui;
    QSqlDatabase db;
    QSqlTableModel *model;
};
#endif // MAINWINDOW_H

скрин выполнения программы

Ответы

Ответов пока нет.