玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Src
Database
Database.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
5
#include <QObject>
6
#include <QSqlDatabase>
7
#include <QDateTime>
8
#include <QJsonObject>
9
#include "plugin_export.h"
10
11
class
CParameterDatabase
;
12
20
class
PLUGIN_EXPORT CDatabase :
public
QObject
21
{
22
Q_OBJECT
23
24
public
:
25
explicit
CDatabase(QObject *parent =
nullptr
);
26
virtual
~CDatabase();
27
31
36
[[nodiscard]]
bool
SetDatabase
(
const
CDatabase* db);
42
[[nodiscard]]
bool
SetDatabase
(
const
QSqlDatabase db,
const
CParameterDatabase
* pPara);
44
45
[[nodiscard]] QSqlDatabase GetDatabase()
const
;
46
50
58
[[nodiscard]]
bool
OpenDatabase
(
59
const
CParameterDatabase
* pPara =
nullptr
,
60
const
QString& szConnectName = QString());
61
[[nodiscard]]
bool
OpenMySqlDatabase(
62
const
CParameterDatabase
* pPara,
63
const
QString& szConnectName = QString());
64
[[nodiscard]]
bool
OpenODBCDatabase(
65
const
CParameterDatabase
* pPara,
66
const
QString& szConnectName = QString());
67
[[nodiscard]]
bool
OpenSQLiteDatabase(
68
const
CParameterDatabase
* pPara,
69
const
QString &szConnectionName = QString());
70
[[nodiscard]]
bool
OpenSQLiteDatabase(
71
const
QString& szFile,
72
const
QString& szConnectionName = QString());
74
75
[[nodiscard]]
virtual
bool
IsOpen()
const
;
80
void
CloseDatabase
();
81
82
[[nodiscard]]
const
CParameterDatabase
* GetParameter()
const
;
83
[[nodiscard]]
const
QString GetError()
const
;
84
88
[[nodiscard]]
virtual
bool
ExportToJsonFile(
const
QString& szFile);
89
[[nodiscard]]
virtual
bool
ImportFromJsonFile(
const
QString& szFile);
91
92
Q_SIGNALS:
93
void
sigChanged();
94
95
protected
:
99
103
[[nodiscard]]
virtual
bool
OnInitializeDatabase
();
104
[[nodiscard]]
virtual
bool
OnInitializeSqliteDatabase();
105
[[nodiscard]]
virtual
bool
OnInitializeMySqlDatabase();
107
108
void
SetError(
const
QString& szErr = QString());
109
110
[[nodiscard]]
virtual
bool
ExportToJson(QJsonObject& obj);
111
[[nodiscard]]
virtual
bool
ImportFromJson(
const
QJsonObject& obj);
112
113
protected
:
114
QString m_szConnectName;
115
QString m_MinVersion;
116
const
CParameterDatabase
* m_pPara;
117
118
private
:
119
QSqlDatabase m_database;
120
bool
m_bOwner;
121
QString m_szError;
122
};
123
128
class
PLUGIN_EXPORT CDatabaseIcon :
public
CDatabase
129
{
130
Q_OBJECT
131
132
public
:
133
explicit
CDatabaseIcon(
const
QString& szSuffix = QString(),
134
QObject *parent =
nullptr
);
135
142
[[nodiscard]]
int
GetIcon
(
const
QIcon& icon);
143
[[nodiscard]] QIcon
GetIcon
(
int
id
);
144
145
[[nodiscard]]
static
bool
ExportIconToJson(
/*in*/
const
QIcon& icon,
/*out*/
QJsonObject& obj);
146
[[nodiscard]]
static
bool
ImportIconFromJson(
/*in*/
const
QJsonObject &obj,
/*out*/
QIcon& icon);
147
148
protected
:
149
bool
OnInitializeSqliteDatabase()
override
;
150
bool
OnInitializeMySqlDatabase()
override
;
151
152
//[[nodiscard]] virtual bool ExportToJson(QJsonObject& obj) override;
153
154
private
:
155
QString m_szTableName;
156
};
157
163
class
PLUGIN_EXPORT CDatabaseFile :
public
CDatabase
164
{
165
Q_OBJECT
166
167
public
:
168
explicit
CDatabaseFile(
const
QString& szSuffix = QString(),
169
QObject *parent =
nullptr
);
170
171
bool
IsExist(
const
QString& szFile);
172
177
[[nodiscard]] QByteArray
Load
(
const
QString &szFile);
182
bool
Save
(
const
QString& szFile);
183
190
[[nodiscard]]
static
bool
ExportFileToJson
(
const
QString &szFile, QJsonObject &obj);
197
[[nodiscard]]
static
bool
ImportFileFromJson
(
const
QJsonObject &obj, QString &szFile);
204
[[nodiscard]]
bool
ImportFileToDatabaseFromJson
(
const
QJsonObject &obj, QString &szFile);
205
211
[[nodiscard]]
static
QString
GetFile
(
const
QString& szFile);
217
[[nodiscard]]
static
QString
SetFile
(
const
QString& szFile);
218
219
protected
:
220
[[nodiscard]]
virtual
bool
OnInitializeSqliteDatabase()
override
;
221
[[nodiscard]]
virtual
bool
OnInitializeMySqlDatabase()
override
;
222
223
private
:
224
QString m_szTableName;
225
};
CDatabaseFile::ImportFileToDatabaseFromJson
bool ImportFileToDatabaseFromJson(const QJsonObject &obj, QString &szFile)
Import file to database from JSON
定义
Database.cpp:715
CDatabaseFile::ExportFileToJson
static bool ExportFileToJson(const QString &szFile, QJsonObject &obj)
ExportFileToJson
定义
Database.cpp:657
CDatabaseFile::ImportFileFromJson
static bool ImportFileFromJson(const QJsonObject &obj, QString &szFile)
Import file from JSON
定义
Database.cpp:686
CDatabaseFile::Save
bool Save(const QString &szFile)
Save
定义
Database.cpp:756
CDatabaseFile::Load
QByteArray Load(const QString &szFile)
Load
定义
Database.cpp:732
CDatabaseFile::SetFile
static QString SetFile(const QString &szFile)
Set the file with file system to the file in database
定义
Database.cpp:892
CDatabaseFile::GetFile
static QString GetFile(const QString &szFile)
Get the file with file system from the file in database
定义
Database.cpp:881
CDatabaseIcon::GetIcon
int GetIcon(const QIcon &icon)
Get icon id
定义
Database.cpp:493
CDatabase::CloseDatabase
void CloseDatabase()
Close database
定义
Database.cpp:321
CDatabase::OnInitializeDatabase
virtual bool OnInitializeDatabase()
Initialize database
定义
Database.cpp:288
CDatabase::SetDatabase
bool SetDatabase(const CDatabase *db)
Share an existing database
定义
Database.cpp:34
CDatabase::OpenDatabase
bool OpenDatabase(const CParameterDatabase *pPara=nullptr, const QString &szConnectName=QString())
Open a new database
定义
Database.cpp:69
CParameterDatabase
定义
ParameterDatabase.h:7
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力