У меня вопрос относительно использования баз данных в Qt.Использование базы данных Qt в большом приложении
В других языках я бы сделал что-то вроде создания базы данных в основном классе и передал указатель этой базы данных другим классам, которые будут использоваться.
Я играл в Qt, и кажется, что если я инициализирую базу данных в основном классе, тогда я могу просто написать и выполнить запрос в любом другом классе, и он будет использовать эту базу данных, и я немного смущен, потому что похоже, нет ссылки на базу данных.
Может кто-нибудь объяснить это для меня :)
Вот класс базы данных, который инстанс в mainwindow.cpp
#include "database.h"
Database::Database()
{
Connect();
}
void Database::Connect()
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.dat");
if(db.open()){
qDebug() << "Connected";
}
else
{
qDebug() << "Not Connected";
}
}
bool Database::SetupTables()
{
QSqlQuery qry;
qry.exec("CREATE TABLE patients (patient_id INT, firstname VARCHAR(100), lastname VARCHAR(100)); ");
return true;
}
Вот окно (Widget) я создал называется PatientList
#include "patientlist.h"
#include "ui_patientlist.h"
#include "database.h"
#include <QtSql>
#include <QtDebug>
PatientList::PatientList(QWidget *parent) :
QWidget(parent),
ui(new Ui::PatientList)
{
ui->setupUi(this);
QSqlQuery qry;
if(qry.exec("SELECT patient_id,firstname,lastname FROM patients")){
qDebug() << "Success";
}
else
{
qDebug() << "Error";
}
}
PatientList::~PatientList()
{
delete ui;
}
Все это работает нормально, но я просто чувствую, что я делаю что-то неправильно, потому что я не упомянул базу данных, созданную в MainWindow.cpp
Можете ли вы показать нам пример кода? Это невероятно неопределенно – cppguy
Добавлено в сообщение – Liam