Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:50:45

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
0004 
0005 #ifndef QSQLRESULT_H
0006 #define QSQLRESULT_H
0007 
0008 #include <QtSql/qtsqlglobal.h>
0009 #include <QtCore/qvariant.h>
0010 #include <QtCore/qcontainerfwd.h>
0011 
0012 QT_BEGIN_NAMESPACE
0013 
0014 
0015 class QString;
0016 class QSqlRecord;
0017 class QVariant;
0018 class QSqlDriver;
0019 class QSqlError;
0020 class QSqlResultPrivate;
0021 
0022 class Q_SQL_EXPORT QSqlResult
0023 {
0024     Q_DECLARE_PRIVATE(QSqlResult)
0025     friend class QSqlQuery;
0026     friend class QSqlTableModelPrivate;
0027 
0028 public:
0029     virtual ~QSqlResult();
0030     virtual QVariant handle() const;
0031 
0032 protected:
0033     enum BindingSyntax {
0034         PositionalBinding,
0035         NamedBinding
0036     };
0037 
0038     explicit QSqlResult(const QSqlDriver * db);
0039     QSqlResult(QSqlResultPrivate &dd);
0040     int at() const;
0041     QString lastQuery() const;
0042     QSqlError lastError() const;
0043     bool isValid() const;
0044     bool isActive() const;
0045     bool isSelect() const;
0046     bool isForwardOnly() const;
0047     const QSqlDriver* driver() const;
0048     virtual void setAt(int at);
0049     virtual void setActive(bool a);
0050     virtual void setLastError(const QSqlError& e);
0051     virtual void setQuery(const QString& query);
0052     virtual void setSelect(bool s);
0053     virtual void setForwardOnly(bool forward);
0054 
0055     // prepared query support
0056     virtual bool exec();
0057     virtual bool prepare(const QString& query);
0058     virtual bool savePrepare(const QString& sqlquery);
0059     virtual void bindValue(int pos, const QVariant& val, QSql::ParamType type);
0060     virtual void bindValue(const QString& placeholder, const QVariant& val,
0061                            QSql::ParamType type);
0062     void addBindValue(const QVariant& val, QSql::ParamType type);
0063     QVariant boundValue(const QString& placeholder) const;
0064     QVariant boundValue(int pos) const;
0065     QSql::ParamType bindValueType(const QString& placeholder) const;
0066     QSql::ParamType bindValueType(int pos) const;
0067     int boundValueCount() const;
0068 #if QT_SQL_REMOVED_SINCE(6, 6)
0069     QList<QVariant> &boundValues() const;
0070 #endif
0071     QVariantList &boundValues(QT6_DECL_NEW_OVERLOAD);
0072     QVariantList boundValues(QT6_DECL_NEW_OVERLOAD) const;
0073 
0074     QString executedQuery() const;
0075     QStringList boundValueNames() const;
0076     QString boundValueName(int pos) const;
0077     void clear();
0078     bool hasOutValues() const;
0079 
0080     BindingSyntax bindingSyntax() const;
0081 
0082     virtual QVariant data(int i) = 0;
0083     virtual bool isNull(int i) = 0;
0084     virtual bool reset(const QString& sqlquery) = 0;
0085     virtual bool fetch(int i) = 0;
0086     virtual bool fetchNext();
0087     virtual bool fetchPrevious();
0088     virtual bool fetchFirst() = 0;
0089     virtual bool fetchLast() = 0;
0090     virtual int size() = 0;
0091     virtual int numRowsAffected() = 0;
0092     virtual QSqlRecord record() const;
0093     virtual QVariant lastInsertId() const;
0094 
0095     enum VirtualHookOperation { };
0096     virtual void virtual_hook(int id, void *data);
0097     virtual bool execBatch(bool arrayBind = false);
0098     virtual void detachFromResultSet();
0099     virtual void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy);
0100     QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
0101     void setPositionalBindingEnabled(bool enable);
0102     bool isPositionalBindingEnabled() const;
0103     virtual bool nextResult();
0104     void resetBindCount(); // HACK
0105 
0106     QSqlResultPrivate *d_ptr;
0107 
0108 private:
0109     Q_DISABLE_COPY(QSqlResult)
0110 };
0111 
0112 QT_END_NAMESPACE
0113 
0114 #endif // QSQLRESULT_H