- virtual bool initDbSession(QSqlDatabase &db);
- virtual void setConnectionProperties(const QVariantMap &properties);
- inline virtual QString driverName() { return "QPSQL"; }
- inline virtual QString hostName() { return _hostName; }
- inline virtual int port() { return _port; }
- inline virtual QString databaseName() { return _databaseName; }
- inline virtual QString userName() { return _userName; }
- inline virtual QString password() { return _password; }
- virtual int installedSchemaVersion();
- virtual bool updateSchemaVersion(int newVersion);
- virtual bool setupSchemaVersion(int version);
- void safeExec(QSqlQuery &query);
-
- bool beginReadOnlyTransaction(QSqlDatabase &db);
-
- QSqlQuery executePreparedQuery(const QString &queryname, const QVariantList ¶ms, const QSqlDatabase &db);
- QSqlQuery executePreparedQuery(const QString &queryname, const QVariant ¶m, const QSqlDatabase &db);
- void deallocateQuery(const QString &queryname, const QSqlDatabase &db);
-
- inline void savePoint(const QString &handle, const QSqlDatabase &db) { db.exec(QString("SAVEPOINT %1").arg(handle)); }
- inline void rollbackSavePoint(const QString &handle, const QSqlDatabase &db) { db.exec(QString("ROLLBACK TO SAVEPOINT %1").arg(handle)); }
- inline void releaseSavePoint(const QString &handle, const QSqlDatabase &db) { db.exec(QString("RELEASE SAVEPOINT %1").arg(handle)); }
+ bool initDbSession(QSqlDatabase& db) override;
+ void setConnectionProperties(const QVariantMap& properties, const QProcessEnvironment& environment, bool loadFromEnvironment) override;
+ QString driverName() override { return "QPSQL"; }
+ QString hostName() override { return _hostName; }
+ int port() override { return _port; }
+ QString databaseName() override { return _databaseName; }
+ QString userName() override { return _userName; }
+ QString password() override { return _password; }
+ int installedSchemaVersion() override;
+ bool updateSchemaVersion(int newVersion, bool clearUpgradeStep) override;
+ bool setupSchemaVersion(int version) override;
+
+ /**
+ * Gets the last successful schema upgrade step, or an empty string if no upgrade is in progress
+ *
+ * @return Filename of last successful schema upgrade query, or empty string if not upgrading
+ */
+ QString schemaVersionUpgradeStep() override;
+
+ /**
+ * Sets the last successful schema upgrade step
+ *
+ * @param upgradeQuery The filename of the last successful schema upgrade query
+ * @return True if successfully set, otherwise false
+ */
+ virtual bool setSchemaVersionUpgradeStep(QString upgradeQuery) override;
+
+ void safeExec(QSqlQuery& query);
+
+ bool beginTransaction(QSqlDatabase& db);
+ bool beginReadOnlyTransaction(QSqlDatabase& db);
+
+ QSqlQuery executePreparedQuery(const QString& queryname, const QVariantList& params, QSqlDatabase& db);
+ QSqlQuery executePreparedQuery(const QString& queryname, const QVariant& param, QSqlDatabase& db);
+ void deallocateQuery(const QString& queryname, const QSqlDatabase& db);
+
+ void savePoint(const QString& handle, const QSqlDatabase& db) { db.exec(QString("SAVEPOINT %1").arg(handle)); }
+ void rollbackSavePoint(const QString& handle, const QSqlDatabase& db) { db.exec(QString("ROLLBACK TO SAVEPOINT %1").arg(handle)); }
+ void releaseSavePoint(const QString& handle, const QSqlDatabase& db) { db.exec(QString("RELEASE SAVEPOINT %1").arg(handle)); }