- inline virtual void sync() {};
-
- QSqlDatabase logDb();
-
- QString queryString(const QString &queryName, int version);
- inline QString queryString(const QString &queryName) { return queryString(queryName, 0); }
-
- QStringList setupQueries();
-
- QStringList upgradeQueries(int ver);
- bool upgradeDb();
-
- bool watchQuery(QSqlQuery &query);
-
- int schemaVersion();
- virtual int installedSchemaVersion() { return -1; };
- virtual bool updateSchemaVersion(int newVersion) = 0;
- virtual bool setupSchemaVersion(int version) = 0;
-
- virtual void setConnectionProperties(const QVariantMap &properties) = 0;
- virtual QString driverName() = 0;
- inline virtual QString hostName() { return QString(); }
- inline virtual int port() { return -1; }
- virtual QString databaseName() = 0;
- inline virtual QString userName() { return QString(); }
- inline virtual QString password() { return QString(); }
-
-
- //! Initialize db specific features on connect
- /** This is called every time a connection to a specific SQL backend is established
- * the default implementation does nothing.
- *
- * When reimplementing this method, don't use logDB() inside this function as
- * this would cause as we're just about to initialize that DB connection.
- */
- inline virtual void initDbSession(QSqlDatabase & /* db */) {}
+ inline void sync() override{};
+
+ QSqlDatabase logDb();
+
+ /**
+ * Fetch an SQL query string by name and optional schema version
+ *
+ * Loads the named SQL query from the built-in SQL resource collection, returning it as a
+ * string. If a version is specified, it'll be loaded from the schema version-specific folder
+ * instead.
+ *
+ * @see schemaVersion()
+ *
+ * @param[in] queryName File name of the SQL query, minus the .sql extension
+ * @param[in] version
+ * @parblock
+ * SQL schema version; if 0, fetches from current version, otherwise loads from the specified
+ * schema version instead of the current schema files.
+ * @endparblock
+ * @return String with the requested SQL query, ready for parameter substitution
+ */
+ QString queryString(const QString& queryName, int version = 0);
+
+ QStringList setupQueries();
+
+ QStringList upgradeQueries(int ver);
+ bool upgradeDb();
+
+ bool watchQuery(QSqlQuery& query);
+
+ int schemaVersion();
+ virtual int installedSchemaVersion() { return -1; };
+ virtual bool updateSchemaVersion(int newVersion) = 0;
+ virtual bool setupSchemaVersion(int version) = 0;
+
+ virtual void setConnectionProperties(const QVariantMap& properties, const QProcessEnvironment& environment, bool loadFromEnvironment) = 0;
+ virtual QString driverName() = 0;
+ inline virtual QString hostName() { return QString(); }
+ inline virtual int port() { return -1; }
+ virtual QString databaseName() = 0;
+ inline virtual QString userName() { return QString(); }
+ inline virtual QString password() { return QString(); }
+
+ //! Initialize db specific features on connect
+ /** This is called every time a connection to a specific SQL backend is established
+ * the default implementation does nothing.
+ *
+ * When reimplementing this method, don't use logDB() inside this function as
+ * this would cause as we're just about to initialize that DB connection.
+ */
+ inline virtual bool initDbSession(QSqlDatabase& /* db */) { return true; }