· 6 years ago · Mar 16, 2019, 06:16 PM
1private:
2 QString temporaryFolder;
3 dataInfo *mNewDatabaseImages;
4 QSqlTableModel *mNewTableImages;
5
6MainWindow::MainWindow(QWidget *parent) :
7 QMainWindow(parent),
8 ui(new Ui::MainWindow)
9{
10 ui->setupUi(this);
11 temporaryFolder = "/home/to/Desktop/tempDBFolder/tmp.db";
12 QFile dbRem(temporaryFolder);
13 dbRem.remove();
14 mNewDatabaseImages = new dataInfo(this);
15 mNewDatabaseImages->initDataBase(temporaryFolder);
16 mNewDatabaseImages->confDataBase();
17 mNewTableImages = new QSqlTableModel(this, mNewDatabaseImages->getDatabase());
18 mNewTableImages->setTable("leftCamTable");
19 mNewTableImages->select();
20 ui->bookMarkTableView->setModel(mNewTableImages);
21 ui->bookMarkTableView->showColumn(true);
22}
23
24#ifndef DATAINFO_H
25#define DATAINFO_H
26#include <QObject>
27#include <QSqlDatabase>
28#include "imageparam.h"
29
30class dataInfo : public QObject
31{
32 Q_OBJECT
33public:
34 explicit dataInfo(QObject *parent = nullptr);
35 bool initDataBase(const QString &nameDB);
36 bool confDataBase();
37 bool addItem(ImageParam* imageItem);
38 QSqlDatabase getDatabase();
39private:
40 QString mError;
41 QSqlDatabase mDBImages;
42};
43#endif // DATAINFO_H
44
45#include "datainfo.h"
46#include <QSqlQuery>
47#include <QSqlError>
48#include <QDebug>
49#include <QVariant>
50#include <QMessageBox>
51
52#define CREATE_TABLE
53 " CREATE TABLE IF NOT EXISTS imageTable"
54 " (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"
55 " path1 TEXT NOT NULL"
56 " path2 TEXT NOT NULL"
57 " imageA BLOB NOT NULL"
58 " imageB BLOB NOT NULL)"
59
60dataInfo::dataInfo(QObject *parent) : QObject(parent)
61{}
62
63bool dataInfo::initDataBase(const QString &nameDB)
64{
65 mDBImages = QSqlDatabase::addDatabase("QSQLITE");
66 mDBImages.setDatabaseName(nameDB);
67 bool ok = mDBImages.open();
68 if(!ok) {
69 mError = mDBImages.lastError().text();
70 qDebug() << mError;
71 }
72 return ok;
73}
74
75bool dataInfo::confDataBase()
76{
77 QSqlQuery qry;
78 bool ok = qry.exec(CREATE_TABLE);
79 if(!ok) {
80 mError = qry.lastError().text();
81 }
82 return ok;
83}
84
85bool dataInfo::addItem(ImageParam *imageItem)
86{
87 QSqlQuery qry;
88 qry.prepare("INSERT INTO imageTable (path1, path2, imageA, imageB)"
89 " VALUES (?,?,?,?)");
90 qry.addBindValue(imageItem->path1());
91 qry.addBindValue(imageItem->path2());
92 qry.addBindValue(imageItem->image1());
93 qry.addBindValue(imageItem->image2());
94 bool ok = qry.exec();
95 if(!ok) {
96 mError = qry.lastError().text();
97 }
98 return ok;
99}
100
101QSqlDatabase dataInfo::getDatabase()
102{
103 return mDBImages;
104}
105
106db->setDatabaseName("name");
107if(!db->open()) {
108 qDebug() << "Error opening ";
109 return false;
110}