Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-18 09:28:53

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 
0004 #ifndef QSQLDATABASE_H
0005 #define QSQLDATABASE_H
0006 
0007 #include <QtSql/qtsqlglobal.h>
0008 #include <QtCore/qmetaobject.h>
0009 #include <QtCore/qstring.h>
0010 
0011 // clazy:excludeall=qproperty-without-notify
0012 QT_BEGIN_NAMESPACE
0013 
0014 
0015 class QSqlError;
0016 class QSqlDriver;
0017 class QSqlIndex;
0018 class QSqlRecord;
0019 class QSqlQuery;
0020 class QSqlDatabasePrivate;
0021 class QThread;
0022 
0023 class Q_SQL_EXPORT QSqlDriverCreatorBase
0024 {
0025 public:
0026     virtual ~QSqlDriverCreatorBase();
0027     virtual QSqlDriver *createObject() const = 0;
0028 };
0029 
0030 template <class T>
0031 class QSqlDriverCreator : public QSqlDriverCreatorBase
0032 {
0033 public:
0034     QSqlDriver *createObject() const override { return new T; }
0035 };
0036 
0037 class Q_SQL_EXPORT QSqlDatabase
0038 {
0039     Q_GADGET
0040     Q_PROPERTY(QSql::NumericalPrecisionPolicy numericalPrecisionPolicy READ numericalPrecisionPolicy WRITE setNumericalPrecisionPolicy)
0041 
0042 public:
0043 
0044     QSqlDatabase();
0045     QSqlDatabase(const QSqlDatabase &other);
0046     ~QSqlDatabase();
0047 
0048     QSqlDatabase &operator=(const QSqlDatabase &other);
0049 
0050     bool open();
0051     bool open(const QString& user, const QString& password);
0052     void close();
0053     bool isOpen() const;
0054     bool isOpenError() const;
0055     QStringList tables(QSql::TableType type = QSql::Tables) const;
0056     QSqlIndex primaryIndex(const QString& tablename) const;
0057     QSqlRecord record(const QString& tablename) const;
0058 #if QT_DEPRECATED_SINCE(6, 6)
0059     QT_DEPRECATED_VERSION_X_6_6("Use QSqlQuery::exec() instead.")
0060     QSqlQuery exec(const QString& query = QString()) const;
0061 #endif
0062     QSqlError lastError() const;
0063     bool isValid() const;
0064 
0065     bool transaction();
0066     bool commit();
0067     bool rollback();
0068 
0069     void setDatabaseName(const QString& name);
0070     void setUserName(const QString& name);
0071     void setPassword(const QString& password);
0072     void setHostName(const QString& host);
0073     void setPort(int p);
0074     void setConnectOptions(const QString& options = QString());
0075     QString databaseName() const;
0076     QString userName() const;
0077     QString password() const;
0078     QString hostName() const;
0079     QString driverName() const;
0080     int port() const;
0081     QString connectOptions() const;
0082     QString connectionName() const;
0083     void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
0084     QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
0085     bool moveToThread(QThread *targetThread);
0086     QThread *thread() const;
0087 
0088     QSqlDriver* driver() const;
0089 
0090     static const char *defaultConnection;
0091 
0092     static QSqlDatabase addDatabase(const QString& type,
0093                                  const QString& connectionName = QLatin1StringView(defaultConnection));
0094     static QSqlDatabase addDatabase(QSqlDriver* driver,
0095                                  const QString& connectionName = QLatin1StringView(defaultConnection));
0096     static QSqlDatabase cloneDatabase(const QSqlDatabase &other, const QString& connectionName);
0097     static QSqlDatabase cloneDatabase(const QString &other, const QString& connectionName);
0098     static QSqlDatabase database(const QString& connectionName = QLatin1StringView(defaultConnection),
0099                                  bool open = true);
0100     static void removeDatabase(const QString& connectionName);
0101     static bool contains(const QString& connectionName = QLatin1StringView(defaultConnection));
0102     static QStringList drivers();
0103     static QStringList connectionNames();
0104     static void registerSqlDriver(const QString &name, QSqlDriverCreatorBase *creator);
0105     static bool isDriverAvailable(const QString &name);
0106 
0107 protected:
0108     explicit QSqlDatabase(const QString& type);
0109     explicit QSqlDatabase(QSqlDriver* driver);
0110 
0111 private:
0112     friend class QSqlDatabasePrivate;
0113     QSqlDatabasePrivate *d;
0114 };
0115 
0116 #ifndef QT_NO_DEBUG_STREAM
0117 Q_SQL_EXPORT QDebug operator<<(QDebug, const QSqlDatabase &);
0118 #endif
0119 
0120 QT_END_NAMESPACE
0121 
0122 #endif // QSQLDATABASE_H