Только начал осваивать 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, если так можно сделать.