Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qsqlresult.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 QSQLRESULT_H
5#define QSQLRESULT_H
6
7#include <QtSql/qtsqlglobal.h>
8#include <QtCore/qvariant.h>
9#include <QtCore/qcontainerfwd.h>
10
11// for testing:
12class tst_QSqlQuery;
13
15
16
17class QString;
18class QSqlRecord;
19class QVariant;
20class QSqlDriver;
21class QSqlError;
23
24class Q_SQL_EXPORT QSqlResult
25{
26 Q_DECLARE_PRIVATE(QSqlResult)
27 friend class QSqlQuery;
29 // for testing:
30 friend class ::tst_QSqlQuery;
31
32public:
33 virtual ~QSqlResult();
34 virtual QVariant handle() const;
35
36protected:
39 NamedBinding
40 };
41
42 explicit QSqlResult(const QSqlDriver * db);
44 int at() const;
45 QString lastQuery() const;
46 QSqlError lastError() const;
47 bool isValid() const;
48 bool isActive() const;
49 bool isSelect() const;
50 bool isForwardOnly() const;
51 const QSqlDriver* driver() const;
52 virtual void setAt(int at);
53 virtual void setActive(bool a);
54 virtual void setLastError(const QSqlError& e);
55 virtual void setQuery(const QString& query);
56 virtual void setSelect(bool s);
57 virtual void setForwardOnly(bool forward);
58
59 // prepared query support
60 virtual bool exec();
61 virtual bool prepare(const QString& query);
62 virtual bool savePrepare(const QString& sqlquery);
63 virtual void bindValue(int pos, const QVariant& val, QSql::ParamType type);
64 virtual void bindValue(const QString& placeholder, const QVariant& val,
65 QSql::ParamType type);
66 void addBindValue(const QVariant& val, QSql::ParamType type);
67 QVariant boundValue(const QString& placeholder) const;
68 QVariant boundValue(int pos) const;
69 QSql::ParamType bindValueType(const QString& placeholder) const;
70 QSql::ParamType bindValueType(int pos) const;
71 int boundValueCount() const;
72#if QT_SQL_REMOVED_SINCE(6, 6)
73 QList<QVariant> &boundValues() const;
74#endif
77
78 QString executedQuery() const;
79 QStringList boundValueNames() const;
80 QString boundValueName(int pos) const;
81 void clear();
82 bool hasOutValues() const;
83
84 BindingSyntax bindingSyntax() const;
85
86 virtual QVariant data(int i) = 0;
87 virtual bool isNull(int i) = 0;
88 virtual bool reset(const QString& sqlquery) = 0;
89 virtual bool fetch(int i) = 0;
90 virtual bool fetchNext();
91 virtual bool fetchPrevious();
92 virtual bool fetchFirst() = 0;
93 virtual bool fetchLast() = 0;
94 virtual int size() = 0;
95 virtual int numRowsAffected() = 0;
96 virtual QSqlRecord record() const;
97 virtual QVariant lastInsertId() const;
98
100 virtual void virtual_hook(int id, void *data);
101 virtual bool execBatch(bool arrayBind = false);
102 virtual void detachFromResultSet();
103 virtual void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy);
104 QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
105 virtual bool nextResult();
106 void resetBindCount(); // HACK
107
109
110private:
111 Q_DISABLE_COPY(QSqlResult)
112};
113
115
116#endif // QSQLRESULT_H
bool isActive
Definition qlist.h:74
The QSqlDriver class is an abstract base class for accessing specific SQL databases.
Definition qsqldriver.h:25
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:23
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:25
virtual bool isNull(int i)=0
Returns true if the field at position index in the current row is null; otherwise returns false.
QVariantList boundValues(QT6_DECL_NEW_OVERLOAD) const
virtual QVariant data(int i)=0
Returns the data for field index in the current row as a QVariant.
BindingSyntax
This enum type specifies the different syntaxes for specifying placeholders in prepared queries.
Definition qsqlresult.h:37
@ PositionalBinding
Definition qsqlresult.h:38
virtual bool fetchLast()=0
Positions the result to the last record (last row) in the result.
virtual bool fetch(int i)=0
Positions the result to an arbitrary (zero-based) row index.
QVariantList & boundValues(QT6_DECL_NEW_OVERLOAD)
virtual int size()=0
Returns the size of the SELECT result, or -1 if it cannot be determined or if the query is not a SELE...
virtual bool fetchFirst()=0
Positions the result to the first record (row 0) in the result.
virtual int numRowsAffected()=0
Returns the number of rows affected by the last query executed, or -1 if it cannot be determined or i...
virtual bool reset(const QString &sqlquery)=0
Sets the result to use the SQL statement query for subsequent data retrieval.
QSqlResultPrivate * d_ptr
Definition qsqlresult.h:108
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtCore
Definition qvariant.h:64
b clear()
double e
query setForwardOnly(true)
NumericalPrecisionPolicy
Definition qtsqlglobal.h:44
Combined button and popup list for selecting options.
GLuint64 GLenum void * handle
GLboolean GLboolean GLboolean GLboolean a
[7]
GLenum type
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum query
GLuint GLfloat * val
GLdouble s
[6]
Definition qopenglext.h:235
#define QT6_DECL_NEW_OVERLOAD
qDebug()<< QUrl("file copy setQuery(copy.query(QUrl::FullyDecoded), QUrl::DecodedMode)
QMimeDatabase db
[0]
MyRecord record(int row) const
[0]
dialog exec()
QAction * at
QSizePolicy policy