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
qsqldriver.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 QSQLDRIVER_H
5#define QSQLDRIVER_H
6
7#include <QtSql/qtsqlglobal.h>
8#include <QtCore/qobject.h>
9#include <QtCore/qstring.h>
10#include <QtCore/qstringlist.h>
11
12// clazy:excludeall=qproperty-without-notify
14
15
16class QSqlDatabase;
18class QSqlError;
19class QSqlField;
20class QSqlIndex;
21class QSqlRecord;
22class QSqlResult;
23class QVariant;
24
25class Q_SQL_EXPORT QSqlDriver : public QObject
26{
27 friend class QSqlDatabase;
28 friend class QSqlResultPrivate;
30 Q_DECLARE_PRIVATE(QSqlDriver)
31
32public:
33 enum DriverFeature { Transactions, QuerySize, BLOB, Unicode, PreparedQueries,
34 NamedPlaceholders, PositionalPlaceholders, LastInsertId,
35 BatchOperations, SimpleLocking, LowPrecisionNumbers,
36 EventNotifications, FinishQuery, MultipleResultSets, CancelQuery };
37
38 enum StatementType { WhereStatement, SelectStatement, UpdateStatement,
39 InsertStatement, DeleteStatement };
40
41 enum IdentifierType { FieldName, TableName };
42
43 enum NotificationSource { UnknownSource, SelfSource, OtherSource };
44
57
58 Q_PROPERTY(QSql::NumericalPrecisionPolicy numericalPrecisionPolicy READ numericalPrecisionPolicy WRITE setNumericalPrecisionPolicy)
59
60 explicit QSqlDriver(QObject *parent = nullptr);
62 virtual bool isOpen() const;
63 bool isOpenError() const;
64
65 virtual bool beginTransaction();
66 virtual bool commitTransaction();
67 virtual bool rollbackTransaction();
68 virtual QStringList tables(QSql::TableType tableType) const;
69 virtual QSqlIndex primaryIndex(const QString &tableName) const;
70 virtual QSqlRecord record(const QString &tableName) const;
71 virtual QString formatValue(const QSqlField &field, bool trimStrings = false) const;
72
73 virtual QString escapeIdentifier(const QString &identifier, IdentifierType type) const;
74 virtual QString sqlStatement(StatementType type, const QString &tableName,
75 const QSqlRecord &rec, bool preparedStatement) const;
76
77 QSqlError lastError() const;
78
79 virtual QVariant handle() const;
80 virtual bool hasFeature(DriverFeature f) const = 0;
81 virtual void close() = 0;
82 virtual QSqlResult *createResult() const = 0;
83
84 virtual bool open(const QString &db,
85 const QString &user = QString(),
86 const QString &password = QString(),
87 const QString &host = QString(),
88 int port = -1,
89 const QString &connOpts = QString()) = 0;
90 virtual bool subscribeToNotification(const QString &name);
91 virtual bool unsubscribeFromNotification(const QString &name);
92 virtual QStringList subscribedToNotifications() const;
93
94 virtual bool isIdentifierEscaped(const QString &identifier, IdentifierType type) const;
95 virtual QString stripDelimiters(const QString &identifier, IdentifierType type) const;
96
97 void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
98 QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
99
100 DbmsType dbmsType() const;
101 virtual int maximumIdentifierLength(IdentifierType type) const;
102public Q_SLOTS:
103 virtual bool cancelQuery();
104
107
108protected:
109 QSqlDriver(QSqlDriverPrivate &dd, QObject *parent = nullptr);
110 virtual void setOpen(bool o);
111 virtual void setOpenError(bool e);
112 virtual void setLastError(const QSqlError& e);
113
114
115private:
116 Q_DISABLE_COPY(QSqlDriver)
117};
118
120
121#endif // QSQLDRIVER_H
\inmodule QtCore
Definition qobject.h:103
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
IdentifierType
This enum contains a list of SQL identifier types.
Definition qsqldriver.h:41
virtual QSqlResult * createResult() const =0
Creates an empty SQL result on the database.
StatementType
This enum contains a list of SQL statement (or clause) types the driver can create.
Definition qsqldriver.h:38
@ SelectStatement
Definition qsqldriver.h:38
DriverFeature
This enum contains a list of features a driver might support.
Definition qsqldriver.h:33
@ BatchOperations
Definition qsqldriver.h:35
virtual void close()=0
Derived classes must reimplement this pure virtual function in order to close the database connection...
NotificationSource
This enum contains a list of SQL notification sources.
Definition qsqldriver.h:43
void notification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload)
virtual bool open(const QString &db, const QString &user=QString(), const QString &password=QString(), const QString &host=QString(), int port=-1, const QString &connOpts=QString())=0
Derived classes must reimplement this pure virtual function to open a database connection on database...
virtual bool hasFeature(DriverFeature f) const =0
Returns true if the driver supports feature feature; otherwise returns false.
The QSqlError class provides SQL database error information.
Definition qsqlerror.h:17
The QSqlField class manipulates the fields in SQL database tables and views.
Definition qsqlfield.h:19
The QSqlIndex class provides functions to manipulate and describe database indexes.
Definition qsqlindex.h:18
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
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
NumericalPrecisionPolicy
Definition qtsqlglobal.h:43
Combined button and popup list for selecting options.
EGLOutputPortEXT port
GLuint64 GLenum void * handle
GLfloat GLfloat f
GLenum type
GLuint name
GLsizei GLsizei GLchar * source
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_SLOTS
#define Q_SIGNALS
QMimeDatabase db
[0]
MyRecord record(int row) const
[0]