Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qsqlrelationaltablemodel.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QSQLRELATIONALTABLEMODEL_H
6
#
define
QSQLRELATIONALTABLEMODEL_H
7
8
#
include
<
QtSql
/
qtsqlglobal
.
h
>
9
#
include
<
QtSql
/
qsqltablemodel
.
h
>
10
11
#
include
<
QtCore
/
qtypeinfo
.
h
>
12
13
QT_REQUIRE_CONFIG
(
sqlmodel
);
14
15
QT_BEGIN_NAMESPACE
16
17
18
class
Q_SQL_EXPORT
QSqlRelation
19
{
20
public
:
21
QSqlRelation() {}
22
QSqlRelation(
const
QString &aTableName,
const
QString &indexCol,
23
const
QString &displayCol)
24
: tName(aTableName), iColumn(indexCol), dColumn(displayCol) {}
25
26
void
swap(QSqlRelation &other)
noexcept
27
{
28
tName.swap(other.tName);
29
iColumn.swap(other.iColumn);
30
dColumn.swap(other.dColumn);
31
}
32
33
inline
QString tableName()
const
34
{
return
tName; }
35
inline
QString indexColumn()
const
36
{
return
iColumn; }
37
inline
QString displayColumn()
const
38
{
return
dColumn; }
39
bool
isValid()
const
noexcept
40
{
return
!(tName.isEmpty() || iColumn.isEmpty() || dColumn.isEmpty()); }
41
private
:
42
QString tName, iColumn, dColumn;
43
};
44
Q_DECLARE_SHARED
(
QSqlRelation
)
45
46
class
QSqlRelationalTableModelPrivate
;
47
48
class
Q_SQL_EXPORT
QSqlRelationalTableModel
:
public
QSqlTableModel
49
{
50
Q_OBJECT
51
52
public
:
53
enum
JoinMode {
54
InnerJoin,
55
LeftJoin
56
};
57
58
explicit
QSqlRelationalTableModel(QObject *parent =
nullptr
,
59
const
QSqlDatabase &db = QSqlDatabase());
60
virtual
~QSqlRelationalTableModel();
61
62
QVariant data(
const
QModelIndex &item,
int
role = Qt::DisplayRole)
const
override;
63
bool
setData(
const
QModelIndex &item,
const
QVariant &value,
int
role = Qt::EditRole) override;
64
bool
removeColumns(
int
column,
int
count,
const
QModelIndex &parent = QModelIndex()) override;
65
66
void
clear() override;
67
bool
select() override;
68
69
void
setTable(
const
QString &tableName) override;
70
virtual
void
setRelation(
int
column,
const
QSqlRelation &relation);
71
QSqlRelation relation(
int
column)
const
;
72
virtual
QSqlTableModel *relationModel(
int
column)
const
;
73
void
setJoinMode( QSqlRelationalTableModel::JoinMode joinMode );
74
75
public
Q_SLOTS:
76
void
revertRow(
int
row) override;
77
78
protected
:
79
QString selectStatement()
const
override;
80
bool
updateRowInTable(
int
row,
const
QSqlRecord &values) override;
81
bool
insertRowIntoTable(
const
QSqlRecord &values) override;
82
QString orderByClause()
const
override;
83
84
private
:
85
Q_DECLARE_PRIVATE(QSqlRelationalTableModel)
86
};
87
88
QT_END_NAMESPACE
89
90
#
endif
// QSQLRELATIONALTABLEMODEL_H
QRelatedTableModel
Definition
qsqlrelationaltablemodel.cpp:130
QRelatedTableModel::QRelatedTableModel
QRelatedTableModel(QRelation *rel, QObject *parent, const QSqlDatabase &db)
Definition
qsqlrelationaltablemodel.cpp:230
QRelatedTableModel::select
bool select() override
Populates the model with data from the table that was set via setTable(), using the specified filter ...
Definition
qsqlrelationaltablemodel.cpp:235
QSqlRelation
\inmodule QtSql
Definition
qsqlrelationaltablemodel.h:19
QSqlRelationalTableModelPrivate
Definition
qsqlrelationaltablemodel.cpp:250
QSqlRelationalTableModelPrivate::baseRec
QSqlRecord baseRec
Definition
qsqlrelationaltablemodel.cpp:261
QSqlRelationalTableModelPrivate::clearChanges
void clearChanges()
Definition
qsqlrelationaltablemodel.cpp:270
QSqlRelationalTableModelPrivate::relations
QList< QSharedPointer< QRelation > > relations
Definition
qsqlrelationaltablemodel.cpp:260
QSqlRelationalTableModelPrivate::clearCache
void clearCache() override
Definition
qsqlrelationaltablemodel.cpp:292
QSqlRelationalTableModelPrivate::nameToIndex
int nameToIndex(const QString &name) const override
Definition
qsqlrelationaltablemodel.cpp:281
QSqlRelationalTableModelPrivate::translateFieldNames
void translateFieldNames(QSqlRecord &values) const
Definition
qsqlrelationaltablemodel.cpp:705
QSqlRelationalTableModelPrivate::revertCachedRow
void revertCachedRow(int row) override
Definition
qsqlrelationaltablemodel.cpp:276
QSqlRelationalTableModelSql
Definition
qsqlrelationaltablemodel.cpp:26
QSqlRelationalTableModelSql::relTablePrefix
static const QString relTablePrefix(int i)
Definition
qsqlrelationaltablemodel.cpp:28
QSqlRelationalTableModel
The QSqlRelationalTableModel class provides an editable data model for a single database table,...
Definition
qsqlrelationaltablemodel.h:49
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(sqlmodel)
SqlrTm
QSqlRelationalTableModelSql SqlrTm
Definition
qsqlrelationaltablemodel.cpp:31
QRelation
Definition
qsqlrelationaltablemodel.cpp:104
QRelation::populateDictionary
void populateDictionary()
Definition
qsqlrelationaltablemodel.cpp:182
QRelation::model
QRelatedTableModel * model
Definition
qsqlrelationaltablemodel.cpp:120
QRelation::isDictionaryInitialized
bool isDictionaryInitialized() const
Definition
qsqlrelationaltablemodel.cpp:177
QRelation::populateModel
void populateModel()
Definition
qsqlrelationaltablemodel.cpp:151
QRelation::clear
void clear()
Definition
qsqlrelationaltablemodel.cpp:216
QRelation::rel
QSqlRelation rel
Definition
qsqlrelationaltablemodel.cpp:119
QRelation::dictionary
QHash< QString, QVariant > dictionary
Definition
qsqlrelationaltablemodel.cpp:121
QRelation::init
void init(QSqlRelationalTableModel *parent, const QSqlRelation &relation, int column)
Definition
qsqlrelationaltablemodel.cpp:143
QRelation::isValid
bool isValid() const
Definition
qsqlrelationaltablemodel.cpp:223
QRelation::clearDictionary
void clearDictionary()
Definition
qsqlrelationaltablemodel.cpp:210
qtbase
src
sql
models
qsqlrelationaltablemodel.h
Generated on
for Qt by
1.18.0