Auf dieser Seite

QSqlDriver Class

Die Klasse `QSqlDriver` ist eine abstrakte Basisklasse für den Zugriff auf bestimmte SQL-Datenbanken. Mehr...

Header: #include <QSqlDriver>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake: QT += sql
Erbt von: QObject

Öffentliche Typen

enum DriverFeature { Transactions, QuerySize, BLOB, Unicode, PreparedQueries, …, CancelQuery }
enum IdentifierType { FieldName, TableName }
enum NotificationSource { UnknownSource, SelfSource, OtherSource }
enum StatementType { WhereStatement, SelectStatement, UpdateStatement, InsertStatement, DeleteStatement }

Eigenschaften

Öffentliche Funktionen

QSqlDriver(QObject *parent = nullptr)
virtual ~QSqlDriver()
virtual bool beginTransaction()
virtual void close() = 0
virtual bool commitTransaction()
(since 6.9) QString connectionName() const
virtual QSqlResult *createResult() const = 0
virtual QString escapeIdentifier(const QString &identifier, QSqlDriver::IdentifierType type) const
virtual QString formatValue(const QSqlField &field, bool trimStrings = false) const
virtual QVariant handle() const
virtual bool hasFeature(QSqlDriver::DriverFeature feature) const = 0
virtual bool isIdentifierEscaped(const QString &identifier, QSqlDriver::IdentifierType type) const
virtual bool isOpen() const
bool isOpenError() const
QSqlError lastError() const
(since 6.0) virtual int maximumIdentifierLength(QSqlDriver::IdentifierType type) const
QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const
virtual bool open(const QString &db, const QString &user = QString(), const QString &password = QString(), const QString &host = QString(), int port = -1, const QString &options = QString()) = 0
virtual QSqlIndex primaryIndex(const QString &tableName) const
virtual QSqlRecord record(const QString &tableName) const
virtual bool rollbackTransaction()
void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy)
virtual QString sqlStatement(QSqlDriver::StatementType type, const QString &tableName, const QSqlRecord &rec, bool preparedStatement) const
virtual QString stripDelimiters(const QString &identifier, QSqlDriver::IdentifierType type) const
virtual bool subscribeToNotification(const QString &name)
virtual QStringList subscribedToNotifications() const
virtual QStringList tables(QSql::TableType tableType) const
virtual bool unsubscribeFromNotification(const QString &name)

Signale

void notification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload)

Geschützte Funktionen

virtual void setLastError(const QSqlError &error)
virtual void setOpen(bool open)
virtual void setOpenError(bool error)

Ausführliche Beschreibung

Diese Klasse sollte nicht direkt verwendet werden. Verwenden Sie stattdessen die Klasse „ QSqlDatabase “.

Wenn Sie eigene SQL-Treiber erstellen möchten, können Sie eine Unterklasse dieser Klasse definieren und deren rein virtuelle Funktionen sowie die von Ihnen benötigten virtuellen Funktionen neu implementieren. Weitere Informationen finden Sie unter „So schreiben Sie Ihren eigenen Datenbanktreiber “.

Siehe auch „ QSqlDatabase “ und „ QSqlResult “.

Dokumentation zu Mitgliedstypen

enum QSqlDriver::DriverFeature

Diese Enumeration enthält eine Liste von Funktionen, die ein Treiber möglicherweise unterstützt. Verwenden Sie ` hasFeature()` um abzufragen, ob eine Funktion unterstützt wird oder nicht. Einige Funktionen hängen vom Datenbankserver ab und können daher erst dann korrekt ermittelt werden, nachdem die Datenbankverbindung erfolgreich mit ` QSqlDatabase::open()` hergestellt wurde.

KonstanteWertBeschreibung
QSqlDriver::Transactions0Gibt an, ob der Treiber SQL-Transaktionen unterstützt.
QSqlDriver::QuerySize1Gibt an, ob die Datenbank die Größe einer Abfrage melden kann. Beachten Sie, dass einige Datenbanken die Rückgabe der Größe (d. h. der Anzahl der zurückgegebenen Zeilen) einer Abfrage nicht unterstützen; in diesem Fall gibt QSqlQuery::size() den Wert -1 zurück.
QSqlDriver::BLOB2Gibt an, ob der Treiber Felder vom Typ „Binary Large Object“ unterstützt.
QSqlDriver::Unicode3Ob der Treiber Unicode-Zeichenketten unterstützt, sofern der Datenbankserver dies tut.
QSqlDriver::PreparedQueries4Ob der Treiber die Ausführung vorbereiteter Abfragen unterstützt.
QSqlDriver::NamedPlaceholders5Ob der Treiber die Verwendung benannter Platzhalter unterstützt.
QSqlDriver::PositionalPlaceholders6Ob der Treiber die Verwendung von positionsbezogenen Platzhaltern unterstützt.
QSqlDriver::LastInsertId7Ob der Treiber die Rückgabe der ID der zuletzt bearbeiteten Zeile unterstützt.
QSqlDriver::BatchOperations8Ob der Treiber Batch-Operationen unterstützt, siehe QSqlQuery::execBatch()
QSqlDriver::SimpleLocking9Ob der Treiber eine Schreibsperre für eine Tabelle verbietet, während andere Abfragen eine Lesesperre darauf haben.
QSqlDriver::LowPrecisionNumbers10Ob der Treiber das Abrufen numerischer Werte mit geringer Genauigkeit zulässt.
QSqlDriver::EventNotifications11Ob der Treiber Benachrichtigungen über Datenbankereignisse unterstützt.
QSqlDriver::FinishQuery12Ob der Treiber beim Aufruf von ` QSqlQuery::finish()` eine Low-Level-Ressourcenbereinigung durchführen kann.
QSqlDriver::MultipleResultSets13Ob der Treiber auf mehrere Ergebnismengen zugreifen kann, die von Batch-Anweisungen oder gespeicherten Prozeduren zurückgegeben werden.
QSqlDriver::CancelQuery14Ob der Treiber das Abbrechen einer laufenden Abfrage zulässt.

Weitere Informationen zu den unterstützten Funktionen finden Sie in der Dokumentation zumQt SQL -Treiber.

Siehe auch ` hasFeature()`.

enum QSqlDriver::IdentifierType

Diese Enumeration enthält eine Liste von SQL-Bezeichnertypen.

KonstanteWertBeschreibung
QSqlDriver::FieldName0Ein SQL-Feldname
QSqlDriver::TableName1Ein SQL-Tabellenname

enum QSqlDriver::NotificationSource

Diese Enumeration enthält eine Liste von SQL-Benachrichtigungsquellen.

KonstanteWertBeschreibung
QSqlDriver::UnknownSource0Die Benachrichtigungsquelle ist unbekannt
QSqlDriver::SelfSource1Die Benachrichtigungsquelle ist diese Verbindung
QSqlDriver::OtherSource2Die Benachrichtigungsquelle ist eine andere Verbindung

enum QSqlDriver::StatementType

Diese Enumeration enthält eine Liste der SQL-Anweisungs- (oder Klausel-)Typen, die der Treiber erstellen kann.

KonstanteWertBeschreibung
QSqlDriver::WhereStatement0Eine SQL-Anweisung vom Typ „ WHERE “ (z. B. ` WHERE f = 5`).
QSqlDriver::SelectStatement1Eine SQL-Anweisung vom Typ „ SELECT “ (z. B. SELECT f FROM t).
QSqlDriver::UpdateStatement2Eine SQL- UPDATE -Anweisung (z. B. UPDATE TABLE t set f = 1).
QSqlDriver::InsertStatement3Eine SQL-Anweisung vom Typ „ INSERT “ (z. B. INSERT INTO t (f) values (1)).
QSqlDriver::DeleteStatement4Eine SQL-Anweisung „ DELETE “ (z. B. DELETE FROM t).

Siehe auch sqlStatement().

Dokumentation zur Eigenschaft

[since 6.8] numericalPrecisionPolicy : QSql::NumericalPrecisionPolicy

Diese Eigenschaft enthält die Genauigkeitsrichtlinie für die Datenbankverbindung.

Hinweis: Die Einstellung der Genauigkeitsrichtlinie hat keine Auswirkungen auf derzeit aktive Abfragen.

Diese Aufzählung wurde in Qt 6.8 eingeführt.

Zugriffsfunktionen:

QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const
void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy)

Siehe auch „ QSql::NumericalPrecisionPolicy “, „ QSqlQuery::numericalPrecisionPolicy “ und „ QSqlDatabase::numericalPrecisionPolicy “.

Dokumentation zu den Mitgliedsfunktionen

[explicit] QSqlDriver::QSqlDriver(QObject *parent = nullptr)

Erstellt einen neuen Treiber mit dem angegebenen „ parent “.

[virtual noexcept] QSqlDriver::~QSqlDriver()

Löscht das Objekt und gibt alle zugewiesenen Ressourcen frei.

[virtual] bool QSqlDriver::beginTransaction()

Diese Funktion wird aufgerufen, um eine Transaktion zu starten. Bei Erfolg wird „true“ zurückgegeben, andernfalls „false“. Die Standardimplementierung führt keine Aktion durch und gibt „ false “ zurück.

Siehe auch ` commitTransaction()` und ` rollbackTransaction()`.

[pure virtual] void QSqlDriver::close()

Abgeleitete Klassen müssen diese rein virtuelle Funktion neu implementieren, um die Datenbankverbindung zu schließen. Bei Erfolg wird „true“ zurückgegeben, bei einem Fehler „false“.

Siehe auch open() und setOpen().

[virtual] bool QSqlDriver::commitTransaction()

Diese Funktion wird aufgerufen, um eine Transaktion zu bestätigen. Bei Erfolg wird „true“ zurückgegeben, andernfalls „false“. Die Standardimplementierung führt keine Aktion aus und gibt „ false “ zurück.

Siehe auch „ beginTransaction()“ und „ rollbackTransaction()“.

[since 6.9] QString QSqlDriver::connectionName() const

Gibt den Namen der Datenbankverbindung zurück, mit der der Treiber erstellt wurde ( QSqlDatabase::addDatabase()

Diese Funktion wurde in Qt 6.9 eingeführt.

[pure virtual] QSqlResult *QSqlDriver::createResult() const

Erzeugt ein leeres SQL-Ergebnis in der Datenbank. Abgeleitete Klassen müssen diese Funktion neu implementieren und dem Aufrufer ein für ihre Datenbank geeignetes ` QSqlResult `-Objekt zurückgeben.

[virtual] QString QSqlDriver::escapeIdentifier(const QString &identifier, QSqlDriver::IdentifierType type) const

Gibt den gemäß den Datenbankregeln escapeden Wert von „ identifier “ zurück. „ identifier “ kann je nach „ type “ entweder ein Tabellenname oder ein Feldname sein.

Die Standardimplementierung führt keine Aktion aus.

Siehe auch ` isIdentifierEscaped()`.

[virtual] QString QSqlDriver::formatValue(const QSqlField &field, bool trimStrings = false) const

Gibt eine Zeichenfolgenrepräsentation des Werts „ field “ für die Datenbank zurück. Dies wird beispielsweise beim Erstellen von INSERT- und UPDATE-Anweisungen verwendet.

Die Standardimplementierung gibt den Wert als Zeichenkette zurück, die nach den folgenden Regeln formatiert ist:

  • Wenn „ field “ Zeichendaten sind, wird der Wert in einfache Anführungszeichen gesetzt zurückgegeben, was für viele SQL-Datenbanken angemessen ist. Alle eingebetteten einfachen Anführungszeichen werden maskiert (durch zwei einfache Anführungszeichen ersetzt). Wenn „ trimStrings “ wahr ist (die Standardeinstellung ist „false“), werden alle nachgestellten Leerzeichen aus dem Feld entfernt.
  • Wenn „ field “ Datums-/Zeitdaten sind, wird der Wert im ISO-Format formatiert und in einfache Anführungszeichen gesetzt. Sind die Datums-/Zeitdaten ungültig, wird „NULL“ zurückgegeben.
  • Wenn „ field “ Daten vom Typ „ bytearray “ sind und der Treiber binäre Felder bearbeiten kann, wird der Wert als hexadezimale Zeichenkette formatiert.
  • Bei allen anderen Feldtypen wird toString() auf den Wert angewendet und das Ergebnis zurückgegeben.

Siehe auch ` QVariant::toString()`.

[virtual] QVariant QSqlDriver::handle() const

Gibt das Low-Level-Datenbank-Handle zurück, das in ein „ QVariant “ verpackt ist, oder eine ungültige Variante, falls kein Handle vorhanden ist.

Warnung: Verwenden Sie diese Funktion mit äußerster Vorsicht und nur, wenn Sie genau wissen, was Sie tun.

Warnung: Das hier zurückgegebene Handle kann zu einem veralteten Zeiger werden, wenn die Verbindung geändert wird (z. B. wenn Sie die Verbindung schließen).

Warnung: Das Handle kann NULL sein, wenn die Verbindung noch nicht geöffnet ist.

Das hier zurückgegebene Handle ist datenbankabhängig; Sie sollten den Typnamen der Variante abfragen, bevor Sie darauf zugreifen.

Dieses Beispiel ruft das Handle für eine Verbindung zu SQLite ab:

QSqlDatabase db = QSqlDatabase::database();
QVariant v = db.driver()->handle();
if (v.isValid() && (qstrcmp(v.typeName(), "sqlite3*") == 0)) {
    // v.data() returns a pointer to the handle
    sqlite3 *handle = *static_cast<sqlite3 **>(v.data());
    if (handle) {
        // ...
    }
}

Dieser Codeausschnitt gibt das Handle für PostgreSQL oder MySQL zurück:

if (qstrcmp(v.typeName(), "PGconn*") == 0) {
    PGconn *handle = *static_cast<PGconn **>(v.data());
    if (handle) {
        // ...
    }
}

if (qstrcmp(v.typeName(), "MYSQL*") == 0) {
    MYSQL *handle = *static_cast<MYSQL **>(v.data());
    if (handle) {
        // ...
    }
}

Siehe auch ` QSqlResult::handle()`.

[pure virtual] bool QSqlDriver::hasFeature(QSqlDriver::DriverFeature feature) const

Gibt „ true “ zurück, wenn der Treiber die Funktion „ feature “ unterstützt; andernfalls wird „ false “ zurückgegeben.

Beachten Sie, dass bei einigen Datenbanken zunächst ` open()` aufgerufen werden muss, bevor dies festgestellt werden kann.

Siehe auch DriverFeature.

[virtual] bool QSqlDriver::isIdentifierEscaped(const QString &identifier, QSqlDriver::IdentifierType type) const

Gibt zurück, ob „ identifier “ gemäß den Datenbankregeln maskiert wurde. „ identifier “ kann je nach „ type “ entweder ein Tabellenname oder ein Feldname sein.

Implementieren Sie diese Funktion neu, wenn Sie in Ihrer Unterklasse von ` QSqlDriver ` eine eigene Implementierung bereitstellen möchten.

Siehe auch „ stripDelimiters()“ und „ escapeIdentifier()“.

[virtual] bool QSqlDriver::isOpen() const

Gibt „ true “ zurück, wenn die Datenbankverbindung geöffnet ist; andernfalls wird „false“ zurückgegeben.

bool QSqlDriver::isOpenError() const

Gibt „ true “ zurück, wenn beim Öffnen der Datenbankverbindung ein Fehler aufgetreten ist; andernfalls wird „ false “ zurückgegeben.

QSqlError QSqlDriver::lastError() const

Gibt ein ` QSqlError `-Objekt zurück, das Informationen zum letzten in der Datenbank aufgetretenen Fehler enthält.

Siehe auch ` setLastError()`.

[virtual, since 6.0] int QSqlDriver::maximumIdentifierLength(QSqlDriver::IdentifierType type) const

Gibt die maximale Länge für den Bezeichner „ type “ gemäß den Datenbankeinstellungen zurück. Gibt standardmäßig INT_MAX zurück, wenn für die Datenbank keine maximale Länge festgelegt ist.

Diese Funktion wurde in Qt 6.0 eingeführt.

[signal] void QSqlDriver::notification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload)

Dieses Signal wird ausgelöst, wenn die Datenbank eine Ereignisbenachrichtigung sendet, die der Treiber abonniert hat. name identifiziert die Ereignisbenachrichtigung, source gibt die Signalquelle an, payload enthält die zusätzlichen Daten, die optional mit der Benachrichtigung übermittelt werden.

Siehe auch subscribeToNotification().

QSql::NumericalPrecisionPolicy QSqlDriver::numericalPrecisionPolicy() const

Gibt die „numericalPrecisionPolicy“ zurück.

Hinweis: Getter -Funktion für die Eigenschaft „numericalPrecisionPolicy“.

Siehe auch ` setNumericalPrecisionPolicy()`.

[pure virtual] bool QSqlDriver::open(const QString &db, const QString &user = QString(), const QString &password = QString(), const QString &host = QString(), int port = -1, const QString &options = QString())

Abgeleitete Klassen müssen diese rein virtuelle Funktion neu implementieren, um eine Datenbankverbindung zur Datenbank db unter Verwendung des Benutzernamens user, des Passworts password, des Hosts host, des Ports port und der Verbindungsoptionen options herzustellen.

Die Funktion muss bei Erfolg „true“ und bei Fehlschlag „false“ zurückgeben.

Siehe auch ` setOpen()`.

[virtual] QSqlIndex QSqlDriver::primaryIndex(const QString &tableName) const

Gibt den Primärindex der Tabelle „ tableName “ zurück. Gibt ein leeres „ QSqlIndex “ zurück, wenn die Tabelle keinen Primärindex besitzt. Die Standardimplementierung gibt einen leeren Index zurück.

[virtual] QSqlRecord QSqlDriver::record(const QString &tableName) const

Gibt einen ` QSqlRecord ` zurück, der mit den Namen der Felder aus der Tabelle ` tableName` gefüllt ist. Wenn keine solche Tabelle existiert, wird ein leerer Datensatz zurückgegeben. Die Standardimplementierung gibt einen leeren Datensatz zurück.

[virtual] bool QSqlDriver::rollbackTransaction()

Diese Funktion wird aufgerufen, um eine Transaktion zurückzusetzen. Bei Erfolg wird „true“ zurückgegeben, andernfalls „false“. Die Standardimplementierung führt keine Aktion durch und gibt „ false “ zurück.

Siehe auch „ beginTransaction()“ und „ commitTransaction()“.

[virtual protected] void QSqlDriver::setLastError(const QSqlError &error)

Diese Funktion dient dazu, den Wert des letzten Fehlers, „ error “, festzulegen, der in der Datenbank aufgetreten ist.

Siehe auch ` lastError()`.

void QSqlDriver::setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy)

Setzt „ numericalPrecisionPolicy “ auf „ precisionPolicy “.

Hinweis: Setter -Funktion für die Eigenschaft ` numericalPrecisionPolicy`.

Siehe auch numericalPrecisionPolicy().

[virtual protected] void QSqlDriver::setOpen(bool open)

Diese Funktion setzt den Öffnungsstatus der Datenbank auf „ open “. Abgeleitete Klassen können diese Funktion nutzen, um den Status von „ open()“ zurückzugeben.

Siehe auch „ open()“ und „ setOpenError()“.

[virtual protected] void QSqlDriver::setOpenError(bool error)

Diese Funktion setzt den Öffnungsstatus der Datenbank auf „ error “. Abgeleitete Klassen können diese Funktion verwenden, um den Status von ` open()` zu melden. Beachten Sie: Wenn ` error ` wahr ist, wird der Öffnungsstatus der Datenbank auf „geschlossen“ gesetzt (d. h., ` isOpen()` gibt ` false` zurück).

Siehe auch isOpenError(), open() und setOpen().

[virtual] QString QSqlDriver::sqlStatement(QSqlDriver::StatementType type, const QString &tableName, const QSqlRecord &rec, bool preparedStatement) const

Gibt eine SQL-Anweisung vom Typ „ type “ für die Tabelle „ tableName “ mit den Werten aus „ rec “ zurück. Ist „ preparedStatement “ wahr, enthält die Zeichenfolge Platzhalter anstelle von Werten.

Das in jedem Feld von „ rec “ generierte Flag bestimmt, ob das Feld in die generierte Anweisung aufgenommen wird.

Diese Methode kann verwendet werden, um Tabellen zu bearbeiten, ohne sich um datenbankabhängige SQL-Dialekte kümmern zu müssen. Bei nicht vorbereiteten Anweisungen werden die Werte ordnungsgemäß maskiert.

In der WHERE-Anweisung gibt jedes Nicht-Null-Feld von ` rec ` eine Filterbedingung an, die der Gleichheit mit dem Feldwert entspricht, oder – falls vorbereitet – einen Platzhalter. Unabhängig davon, ob vorbereitet oder nicht, gibt ein Null-Feld jedoch die Bedingung `IS NULL` an und führt niemals einen Platzhalter ein. Die Anwendung darf während der Ausführung nicht versuchen, Daten an das Null-Feld zu binden. Das Feld muss auf einen Nicht-Null-Wert gesetzt werden, wenn ein Platzhalter gewünscht wird. Da Nicht-Null-Felder Gleichheitsbedingungen festlegen und SQL-NULL mit nichts gleich ist – nicht einmal mit sich selbst –, ist es im Allgemeinen nicht sinnvoll, einen Null-Wert an einen Platzhalter zu binden.

[virtual] QString QSqlDriver::stripDelimiters(const QString &identifier, QSqlDriver::IdentifierType type) const

Gibt die Funktion „ identifier “ zurück, wobei die führende und die abschließende Trennzeichen entfernt wurden. „ identifier “ kann je nach „ type “ entweder ein Tabellenname oder ein Feldname sein. Wenn „ identifier “ keine führenden und abschließenden Trennzeichen enthält, wird „ identifier “ unverändert zurückgegeben.

Implementieren Sie diese Funktion neu, wenn Sie in Ihrer Unterklasse von ` QSqlDriver ` eine eigene Implementierung bereitstellen möchten,

Siehe auch ` isIdentifierEscaped()`.

[virtual] bool QSqlDriver::subscribeToNotification(const QString &name)

Diese Funktion wird aufgerufen, um Ereignisbenachrichtigungen aus der Datenbank zu abonnieren. „ name “ identifiziert die Ereignisbenachrichtigung.

Bei Erfolg wird „true“ zurückgegeben, andernfalls „false“.

Die Datenbank muss geöffnet sein, wenn diese Funktion aufgerufen wird. Wenn die Datenbank durch den Aufruf von ` close()` geschlossen wird, werden alle abonnierten Ereignisbenachrichtigungen automatisch abgemeldet. Beachten Sie, dass der Aufruf von ` open()` bei einer bereits geöffneten Datenbank implizit den Aufruf von ` close()` auslösen kann, wodurch der Treiber alle Ereignisbenachrichtigungen abbestellt.

Wenn eine durch ` name ` identifizierte Ereignisbenachrichtigung von der Datenbank gesendet wird, wird das Signal ` notification()` ausgelöst.

Implementieren Sie diese Funktion neu, wenn Sie in Ihrer eigenen Unterklasse von ` QSqlDriver ` Unterstützung für Ereignisbenachrichtigungen bereitstellen möchten.

Siehe auch unsubscribeFromNotification(), subscribedToNotifications() und QSqlDriver::hasFeature().

[virtual] QStringList QSqlDriver::subscribedToNotifications() const

Gibt eine Liste der Namen der Ereignisbenachrichtigungen zurück, die derzeit abonniert sind.

Implementieren Sie diese Funktion neu, wenn Sie in Ihrer eigenen Unterklasse von ` QSqlDriver ` Unterstützung für Ereignisbenachrichtigungen bereitstellen möchten.

Siehe auch ` subscribeToNotification()` und ` unsubscribeFromNotification()`.

[virtual] QStringList QSqlDriver::tables(QSql::TableType tableType) const

Gibt eine Liste der Namen der Tabellen in der Datenbank zurück. Die Standardimplementierung gibt eine leere Liste zurück.

Das Argument „ tableType “ beschreibt, welche Tabellentypen zurückgegeben werden sollen. Aus Gründen der binären Kompatibilität enthält die Zeichenkette den Wert der Enumeration „QSql::TableTypes“ als Text. Eine leere Zeichenkette sollte aus Gründen der Abwärtskompatibilität als „ QSql::Tables “ behandelt werden.

[virtual] bool QSqlDriver::unsubscribeFromNotification(const QString &name)

Diese Funktion wird aufgerufen, um das Abonnement für Ereignisbenachrichtigungen aus der Datenbank zu kündigen. ` name ` identifiziert die Ereignisbenachrichtigung.

Bei Erfolg wird „true“ zurückgegeben, andernfalls „false“.

Die Datenbank muss geöffnet sein, wenn diese Funktion aufgerufen wird. Alle abonnierten Ereignisbenachrichtigungen werden automatisch abgemeldet, sobald die Funktion ` close()` aufgerufen wird.

Nach dem Aufruf dieser Funktion wird das Signal ` notification()` nicht mehr ausgelöst, wenn eine durch ` name ` identifizierte Ereignisbenachrichtigung von der Datenbank gesendet wird.

Implementieren Sie diese Funktion neu, wenn Sie in Ihrer eigenen Unterklasse von ` QSqlDriver ` Unterstützung für Ereignisbenachrichtigungen bereitstellen möchten.

Siehe auch „ subscribeToNotification()“ und „ subscribedToNotifications()“.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.