LINUX.ORG.RU

История изменений

Исправление farex, (текущая версия) :

Воспользовался вашим советом, остановился и все пересмотрел и обдумал.
Да в голове была каша когда я это писал.
Не могли бы вы посмотреть на код который я написал ниже и указать на новые ошибки.

Проект имеет следующие файлы:
Заголовочные:
connection_db.h (заголовочный файл созданный мной)
mainwindow.h (тут все по умолчанию)
Исходные файлы: connection_db.cpp (исходный файл созданный мной)
main.cpp (тут все по умолчанию)
mainwindow.cpp

connection_db.h

#ifndef CONNECTION_DB_H
#define CONNECTION_DB_H
#include "QtSql"
#include "QString"

class connection_db
{
public:
    connection_db();
    QSqlDatabase sdb = QSqlDatabase::addDatabase("QSQLITE");
    int open();
    int close();
    QString patch_to_db;
};
#endif // CONNECTION_DB_H

connection_db.h
#include "connection_db.h"
#include "QtSql"

connection_db::connection_db()
{
}
connection_db::open()
{
    sdb.setDatabaseName(patch_to_db);
    sdb.open();
    return 1;
}
connection_db::close()
{
    sdb.close();
    return 0;
}

И mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "connection_db.h"
#include "QMessageBox"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    connection_db conn_db;
    conn_db.patch_to_db = "C:\\Project\\test_sql\\test.db";
    if(conn_db.open() == 1){
        QSqlQueryModel* model;
        model = new QSqlQueryModel();
        model->setQuery("SELECT * FROM table1");
        ui->tableView->setModel(model);
        conn_db.close();
        // qDebug() << query->lastError();
    }
    else if(conn_db.open() == 0){
       QMessageBox message_box;
       message_box.setText("Connection not open");
       message_box.exec();
    }
}

Исходная версия farex, :

Всем спасибо за ответы.

Воспользовался вашим советом, остановился и все пересмотрел и обдумал.
Да в голове была каша когда я это писал.
Не могли бы вы посмотреть на код который я написал ниже и указать на новые ошибки.

Проект имеет следующие файлы:
Заголовочные:
connection_db.h (заголовочный файл созданный мной)
mainwindow.h (тут все по умолчанию)
Исходные файлы: connection_db.cpp (исходный файл созданный мной)
main.cpp (тут все по умолчанию)
mainwindow.cpp

connection_db.h

#ifndef CONNECTION_DB_H
#define CONNECTION_DB_H
#include "QtSql"
#include "QString"

class connection_db
{
public:
    connection_db();
    QSqlDatabase sdb = QSqlDatabase::addDatabase("QSQLITE");
    int open();
    int close();
    QString patch_to_db;
};
#endif // CONNECTION_DB_H

connection_db.h
#include "connection_db.h"
#include "QtSql"

connection_db::connection_db()
{
}
connection_db::open()
{
    sdb.setDatabaseName(patch_to_db);
    sdb.open();
    return 1;
}
connection_db::close()
{
    sdb.close();
    return 0;
}

И mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "connection_db.h"
#include "QMessageBox"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    connection_db conn_db;
    conn_db.patch_to_db = "C:\\Project\\test_sql\\test.db";
    if(conn_db.open() == 1){
        QSqlQueryModel* model;
        model = new QSqlQueryModel();
        model->setQuery("SELECT * FROM table1");
        ui->tableView->setModel(model);
        // qDebug() << query->lastError();
    }
    else if(conn_db.open() == 0){
       QMessageBox message_box;
       message_box.setText("Connection not open");
       message_box.exec();
    }
}