body = QSqlDatabase::addDatabase("QMYSQL","Connect2");
DataBase::~DataBase(){ body.close();}
int main(int argc, char *argv[]){ QApplication a(argc, argv); Dialog w; w.show(); return a.exec();}
if (!QSqlDatabase::drivers().contains("QMYSQL")) { QMessageBox::critical(0, "Driver not foung", "This program needs the MySQL driver"); } init();
DataBase = QSqlDatabase::addDatabase("QPSQL","First"); TechBase = QSqlDatabase::addDatabase("QPSQL","Second");
//database.h#include <QObject>#include <QtSql>#include <QDebug>// библиотека для вывода системных сообщений#include <QString>// библиотека для работы со строками#include <QMessageBox>// библиотека для вывода сообщений MessageBoxclass DataBase : public QObject{ Q_OBJECTpublic: explicit DataBase(QObject *parent = 0); DataBase(QObject *parent, QString name);// конструктор класса. Передается имя БД, к которой нужно осуществить подключение ~DataBase(); QSqlDatabase body;// переменная для работы с базой данных void init(); };#endif // DATABASE_H//database.cpp#include "database.h"#include <QStringList>DataBase::DataBase(QObject *parent) : QObject(parent){ // проверка на драйвер в системе: if (!QSqlDatabase::drivers().contains("QMYSQL")) { QMessageBox::critical(0, "Driver not foung", "This program needs the MySQL driver"); } init();}void DataBase::init(){ body = QSqlDatabase::addDatabase("QMYSQL");// body.setHostName("localhost");// // имя базы// body.setDatabaseName("system");// body.setUserName("root");// body.setPassword("");}}DataBase::~DataBase(){ body.close();}//dialog.h#include "database.h"namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECT DataBase db;public: explicit Dialog(QWidget *parent = 0); ~Dialog();private: Ui::Dialog *ui;};#endif // DIALOG_H//dialog.cpp#include "dialog.h"#include "ui_dialog.h"#include <QStringList>#include <QList>Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog){ ui->setupUi(this);}Dialog::~Dialog(){ delete ui;}
init(); body.close();
QTimer::singleShot(2000,this,SLOT(init())); body.close();;
#-------------------------------------------------## Project created by QtCreator 2013-05-12T08:01:55##-------------------------------------------------QT += core gui sqlgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = TestoTEMPLATE = appSOURCES += main.cpp\ dialog.cppHEADERS += dialog.h
#include "dialog.h"#include <QApplication>int main(int argc, char *argv[]) { QApplication a(argc, argv); Dialog w; w.show(); return a.exec();}
#ifndef DIALOG_H#define DIALOG_H#include <QtWidgets>#include <QtSql>class Dialog : public QDialog{ Q_OBJECTpublic: QSqlDatabase DataBase; Dialog(QWidget *parent = 0); ~Dialog();public slots: void SlotClick();};#endif // DIALOG_H
#include "dialog.h"Dialog::Dialog(QWidget *parent) : QDialog(parent){ QPushButton *B = new QPushButton("Click!"); QHBoxLayout *L = new QHBoxLayout(); L->addWidget(B); setLayout(L); connect(B,SIGNAL(clicked()),this,SLOT(SlotClick()));}Dialog::~Dialog(){ }void Dialog::SlotClick(){ DataBase = QSqlDatabase::addDatabase("QPSQL","First"); DataBase.setHostName("192.168.1.47"); DataBase.setDatabaseName("testo"); DataBase.setUserName("pgsql"); DataBase.setPassword("gfhjkm1"); if (DataBase.open()) { QMessageBox::information(0,"Open","Ok"); DataBase.close(); } else { QMessageBox::information(0,"Open",tr("Error: ")+DataBase.lastError().text()); }}