Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qsqldatabase.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 QSQLDATABASE_H
6#define QSQLDATABASE_H
7
8#include <QtSql/qtsqlglobal.h>
9#include <QtCore/qmetaobject.h>
10#include <QtCore/qstring.h>
11
12// clazy:excludeall=qproperty-without-notify
13QT_BEGIN_NAMESPACE
14
15
16class QSqlError;
17class QSqlDriver;
18class QSqlIndex;
19class QSqlRecord;
20class QSqlQuery;
22class QThread;
23
24class Q_SQL_EXPORT QSqlDriverCreatorBase
25{
26public:
27 virtual ~QSqlDriverCreatorBase();
28 virtual QSqlDriver *createObject() const = 0;
29};
30
31template <class T>
33{
34public:
35 QSqlDriver *createObject() const override { return new T; }
36};
37
39{
40 // separate class because of the static inline constexpr variable
41 static constexpr const char defaultConnection[] = "qt_sql_default_connection";
43 {
44 using namespace Qt::StringLiterals;
45 return u"qt_sql_default_connection"_s;
46 }
47};
48
49class Q_SQL_EXPORT QSqlDatabase : public QSqlDatabaseDefaultConnectionName
50{
51 Q_GADGET
52 Q_PROPERTY(QSql::NumericalPrecisionPolicy numericalPrecisionPolicy READ numericalPrecisionPolicy WRITE setNumericalPrecisionPolicy)
53
54public:
55
56 QSqlDatabase();
57 QSqlDatabase(const QSqlDatabase &other);
58 ~QSqlDatabase();
59
60 QSqlDatabase &operator=(const QSqlDatabase &other);
61
62 bool open();
63 bool open(const QString& user, const QString& password);
64 void close();
65 bool isOpen() const;
66 bool isOpenError() const;
67 QStringList tables(QSql::TableType type = QSql::Tables) const;
68 QSqlIndex primaryIndex(const QString& tablename) const;
69 QSqlRecord record(const QString& tablename) const;
70#if QT_DEPRECATED_SINCE(6, 6)
71 QT_DEPRECATED_VERSION_X_6_6("Use QSqlQuery::exec() instead.")
72 QSqlQuery exec(const QString& query = QString()) const;
73#endif
74 QSqlError lastError() const;
75 bool isValid() const;
76
77 bool transaction();
78 bool commit();
79 bool rollback();
80
81 void setDatabaseName(const QString& name);
82 void setUserName(const QString& name);
83 void setPassword(const QString& password);
84 void setHostName(const QString& host);
85 void setPort(int p);
86 void setConnectOptions(const QString& options = QString());
87 QString databaseName() const;
88 QString userName() const;
89 QString password() const;
90 QString hostName() const;
91 QString driverName() const;
92 int port() const;
93 QString connectOptions() const;
94 QString connectionName() const;
95 void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
96 QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
97 bool moveToThread(QThread *targetThread);
98 QThread *thread() const;
99
100 QSqlDriver* driver() const;
101
102#if QT_SQL_REMOVED_SINCE(6, 10)
103 static const char *defaultConnection;
104#endif
105
106 static QSqlDatabase addDatabase(const QString& type,
107 const QString &connectionName = defaultConnectionName());
108 static QSqlDatabase addDatabase(QSqlDriver* driver,
109 const QString &connectionName = defaultConnectionName());
110 static QSqlDatabase cloneDatabase(const QSqlDatabase &other, const QString &connectionName);
111 static QSqlDatabase cloneDatabase(const QString &other, const QString &connectionName);
112 static QSqlDatabase database(const QString &connectionName = defaultConnectionName(),
113 bool open = true);
114 static void removeDatabase(const QString &connectionName);
115 static bool contains(const QString &connectionName = defaultConnectionName());
116 static QStringList drivers();
117 static QStringList connectionNames();
118 static void registerSqlDriver(const QString &name, QSqlDriverCreatorBase *creator);
119 static bool isDriverAvailable(const QString &name);
120
121protected:
122 explicit QSqlDatabase(const QString& type);
123 explicit QSqlDatabase(QSqlDriver* driver);
124
125private:
126 friend class QSqlDatabasePrivate;
127 QSqlDatabasePrivate *d;
128};
129
130#ifndef QT_NO_DEBUG_STREAM
131Q_SQL_EXPORT QDebug operator<<(QDebug, const QSqlDatabase &);
132#endif
133
134QT_END_NAMESPACE
135
136#endif // QSQLDATABASE_H
static QSqlDatabasePrivate * shared_null()
void init(const QString &type)
QSqlDatabasePrivate(QSqlDriver *dr)
static QSqlDatabase database(const QString &name, bool open)
QSqlDatabasePrivate(const QSqlDatabasePrivate &other)
static void removeDatabase(const QString &name)
static void invalidateDb(const QSqlDatabase &db, const QString &name, bool doWarn=true)
QSql::NumericalPrecisionPolicy precisionPolicy
static void addDatabase(const QSqlDatabase &db, const QString &name)
void copy(const QSqlDatabasePrivate *other)
The QSqlDatabase class handles a connection to a database.
The QSqlDriverCreatorBase class is the base class for SQL driver factories.
The QSqlDriverCreator class is a template class that provides a SQL driver factory for a specific dri...
QSqlDriver * createObject() const override
\reimp
The QSqlDriverPlugin class provides an abstract base for custom QSqlDriver plugins.
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Definition qdir.cpp:2568
#define qCWarning(category,...)
#define Q_STATIC_LOGGING_CATEGORY(name,...)
Q_GLOBAL_STATIC_WITH_ARGS(PermissionStatusHash, g_permissionStatusHash,({ { qMetaTypeId< QCameraPermission >(), Qt::PermissionStatus::Undetermined }, { qMetaTypeId< QMicrophonePermission >(), Qt::PermissionStatus::Undetermined }, { qMetaTypeId< QBluetoothPermission >(), Qt::PermissionStatus::Undetermined }, { qMetaTypeId< QContactsPermission >(), Qt::PermissionStatus::Undetermined }, { qMetaTypeId< QCalendarPermission >(), Qt::PermissionStatus::Undetermined }, { qMetaTypeId< QLocationPermission >(), Qt::PermissionStatus::Undetermined } }))
#define CHECK_QCOREAPPLICATION
#define CHECK_QCOREAPPLICATION_RETVAL
#define QSqlDriverFactoryInterface_iid
static QString defaultConnectionName() noexcept
static constexpr const char defaultConnection[]