#ifndef SQLDATA_H#define SQLDATA_H#include <QObject>#include "QtSql/QSqlDatabase"#include "QtSql/QSqlQuery"class SqlData : public QObject{ Q_OBJECTpublic: QSqlQuery query; void Init(void); explicit SqlData(QObject *parent = 0); QSqlDatabase db;signals:public slots:private:};#endif // SQLDATA_H
SqlData DataBase;
extern SqlData DataBase;
DataBase.Init();
extern SqlData DataBase;BreedDialog::BreedDialog(QWidget *parent) : QDialog(parent), ui(new Ui::BreedDialog){ ui->setupUi(this); ui->BreedSelectComboBox->insertItem(0,"<New breed...>"); ui->BreedSelectComboBox->insertSeparator(0); DataBase.query.exec("select * from breeds;"); qDebug() << DataBase.db.isOpen(); while (DataBase.query.next()) { QString name = DataBase.query.value(1).toString(); qDebug() << name; }}
C++ (Qt)void Class::InitDatabase(){ QSqlDatabase db1 = QSqlDatabase::addDatabase( "QSQLITE" ); // Добавили подключение с именем по умолчанию QSqlDatabase db2 = QSqlDatabase::addDatabase( "QSQLITE", "SpecialConnect" ); // Добавили подключение с именем SpecialConnect ... if( !db1.open() || !db2.open() ) // error} void Class::method1(){ QSqlDatabase db2 = QSqlDatabase::database( "SpecialConnect" ); // Получили соединение с именем SpecialConnect QSqlQuery query1( db2 ); // Использует подключение с именем SpecialConnect} void Class::method2(){ QSqlDatabase db1 = QSqlDatabase::database(); // Получили соединение с именем по умолчанию QSqlQuery query1( db1 ); // Использует подключение с именем по умолчанию // или просто QSqlQuery query2(); // Использует подключение с именем по умолчанию}