@PinkWard
Студент, начинающий разработчик.

Как сделать вывод таблицы ACCESS в QTablView?

Только начал осваивать cpp и QT, и появилась надобность в том, что бы в tableView появлялась информация из бдшки акцесса.
Однако дебагер ругается и выдает:
"QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
Error in opening
16:27:57: C:\Users\user1\Desktop\QT\projects\build-QVIZ-Desktop_Qt_6_1_0_MinGW_64_bit-Release\release\QVIZ.exe завершился с кодом 0"

Не могу понять что с этим делать.
Скорее всего в коде где-то ошибка, но видимо не хватает опыта понять где.
Вот код в main.cpp
#include "mainwindow.h"
#include <QApplication>
 
 
int main(int argc, char *argv[])
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
        db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DNS=''; resultsDB.accdb");
        if (db.open())
            qDebug() << "good";
        else
        {
            qDebug() << "bad";
            return -0;
        }
 
        QTableView view;
        QSqlTableModel model;
 
        model.setTable("resultsDB");
        model.select();
        view.setModel(&model);
        view.show();
 
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}


Вот кусок из mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setWindowTitle("placeholdername");
    setWindowIcon(QIcon(":/img/img/Icon.png"));
    setCentralWidget(ui->stackedWidget);
 
 
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
        db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DNS=''; resultsDB.accdb");
        if (db.open())
            qDebug() << "good";
        else
        {
            qDebug() << "bad";
            return -0;
        }
 
        QSqlTableModel model;
        model.setTable("resultsDB");
        model.select();
        ui->tableView->setModel(&model);
 
};


Бдшка с именем resultsDB лежит в папке релиза проекта.

И есть еще один вопросик, сразу же. Как сделать так, что бы из прописанных лайнэдитов текст уходил в определенную ячейку открытой в tableView бд. Нужно сделать так, что бы прописывая текст в лайнэдитах, он уходил в по факту пустую бд, где для него просто есть ячейки. Может и не нужно будет возиться с tableView, если так можно сделать.
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы