Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qsqlquery.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
4#ifndef QSQLQUERY_H
5#define QSQLQUERY_H
6
7#include <QtSql/qtsqlglobal.h>
8#include <QtSql/qsqldatabase.h>
9#include <QtCore/qstring.h>
10#include <QtCore/qvariant.h>
11
12// clazy:excludeall=qproperty-without-notify
14
15
16class QSqlDriver;
17class QSqlError;
18class QSqlResult;
19class QSqlRecord;
20class QSqlQueryPrivate;
21
22
23class Q_SQL_EXPORT QSqlQuery
24{
26public:
27 Q_PROPERTY(bool forwardOnly READ isForwardOnly WRITE setForwardOnly)
28 Q_PROPERTY(bool positionalBindingEnabled READ isPositionalBindingEnabled WRITE setPositionalBindingEnabled)
29 Q_PROPERTY(QSql::NumericalPrecisionPolicy numericalPrecisionPolicy READ numericalPrecisionPolicy WRITE setNumericalPrecisionPolicy)
30
34
35#if QT_DEPRECATED_SINCE(6, 2)
36 QT_DEPRECATED_VERSION_X_6_2("QSqlQuery is not meant to be copied. Use move construction instead.")
38 QT_DEPRECATED_VERSION_X_6_2("QSqlQuery is not meant to be copied. Use move assignment instead.")
39 QSqlQuery& operator=(const QSqlQuery &other);
40#else
41 QSqlQuery(const QSqlQuery &other) = delete;
43#endif
44
46 : d(std::exchange(other.d, nullptr))
47 {}
48 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QSqlQuery)
49
50 ~QSqlQuery();
51
52 void swap(QSqlQuery &other) noexcept
53 { qt_ptr_swap(d, other.d); }
54
55 bool isValid() const;
56 bool isActive() const;
57 bool isNull(int field) const;
58 bool isNull(const QString &name) const;
59 bool isNull(QStringView name) const;
60 int at() const;
61 QString lastQuery() const;
62 int numRowsAffected() const;
63 QSqlError lastError() const;
64 bool isSelect() const;
65 int size() const;
66 const QSqlDriver* driver() const;
67 const QSqlResult* result() const;
68 bool isForwardOnly() const;
69 QSqlRecord record() const;
70
71 void setForwardOnly(bool forward);
72 bool exec(const QString& query);
73 QVariant value(int i) const;
74 QVariant value(const QString &name) const;
76
77 void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
78 QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
79
80 void setPositionalBindingEnabled(bool enable);
81 bool isPositionalBindingEnabled() const;
82
83 bool seek(int i, bool relative = false);
84 bool next();
85 bool previous();
86 bool first();
87 bool last();
88
89 void clear();
90
91 // prepared query support
92 bool exec();
93 enum BatchExecutionMode { ValuesAsRows, ValuesAsColumns };
94 bool execBatch(BatchExecutionMode mode = ValuesAsRows);
95 bool prepare(const QString& query);
96 void bindValue(const QString& placeholder, const QVariant& val,
97 QSql::ParamType type = QSql::In);
98 void bindValue(int pos, const QVariant& val, QSql::ParamType type = QSql::In);
99 void addBindValue(const QVariant& val, QSql::ParamType type = QSql::In);
100 QVariant boundValue(const QString& placeholder) const;
101 QVariant boundValue(int pos) const;
102 QVariantList boundValues() const;
103 QStringList boundValueNames() const;
104 QString boundValueName(int pos) const;
105 QString executedQuery() const;
106 QVariant lastInsertId() const;
107 void finish();
108 bool nextResult();
109
110private:
111 QSqlQueryPrivate* d;
112};
113
115
116#endif // QSQLQUERY_H
bool isActive
The QSqlDatabase class handles a connection to a database.
The QSqlDriver class is an abstract base class for accessing specific SQL databases.
Definition qsqldriver.h:26
The QSqlError class provides SQL database error information.
Definition qsqlerror.h:17
The QSqlQuery class provides a means of executing and manipulating SQL statements.
Definition qsqlquery.h:24
QSqlQuery & operator=(const QSqlQuery &other)=delete
QSqlQuery(QSqlQuery &&other) noexcept
Definition qsqlquery.h:45
void swap(QSqlQuery &other) noexcept
Definition qsqlquery.h:52
BatchExecutionMode
\value ValuesAsRows - Updates multiple rows.
Definition qsqlquery.h:93
QSqlQuery(const QSqlQuery &other)=delete
The QSqlRecord class encapsulates a database record.
Definition qsqlrecord.h:20
The QSqlResult class provides an abstract interface for accessing data from specific SQL databases.
Definition qsqlresult.h:22
\inmodule QtCore
\inmodule QtCore
Definition qstringview.h:78
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
b clear()
query setForwardOnly(true)
short next
Definition keywords.cpp:445
NumericalPrecisionPolicy
Definition qtsqlglobal.h:43
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum mode
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLboolean r
[2]
GLenum type
GLboolean enable
GLuint name
GLint first
GLenum query
GLuint GLfloat * val
GLuint64EXT * result
[6]
constexpr void qt_ptr_swap(T *&lhs, T *&rhs) noexcept
Definition qswap.h:29
#define QT_DEPRECATED_VERSION_X_6_2(text)
#define Q_PROPERTY(...)
#define Q_GADGET
#define explicit
QMimeDatabase db
[0]
MyRecord record(int row) const
[0]
QSharedPointer< T > other(t)
[5]
dialog exec()
QAction * at