From d9aa870e5d509cc7309ab82dd102a937ab58613a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Thu, 9 Feb 2017 04:36:04 -0500 Subject: Imported Upstream version 3.1.1+dfsg1 --- .../dbsqlitesystemdatainstance.cpp | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Plugins/DbSqliteSystemData/dbsqlitesystemdatainstance.cpp (limited to 'Plugins/DbSqliteSystemData/dbsqlitesystemdatainstance.cpp') diff --git a/Plugins/DbSqliteSystemData/dbsqlitesystemdatainstance.cpp b/Plugins/DbSqliteSystemData/dbsqlitesystemdatainstance.cpp new file mode 100644 index 0000000..2295006 --- /dev/null +++ b/Plugins/DbSqliteSystemData/dbsqlitesystemdatainstance.cpp @@ -0,0 +1,31 @@ +#include "dbsqlitesystemdatainstance.h" +#include "dbsqlitesystemdata.h" + +DbSqliteSystemDataInstance::DbSqliteSystemDataInstance(const QString& name, const QString& path, const QHash& connOptions) : + AbstractDb3(name, path, connOptions) +{ +} + +void DbSqliteSystemDataInstance::initAfterOpen() +{ + SqlQueryPtr res; + + QString key = connOptions[DbSqliteSystemData::PASSWORD_OPT].toString(); + if (!key.isEmpty()) + { + res = exec(QString("PRAGMA key = '%1';").arg(key), Flag::NO_LOCK); + if (res->isError()) + qWarning() << "Error while defining WxSqlite3 key:" << res->getErrorText(); + } + + AbstractDb3::initAfterOpen(); +} + +QString DbSqliteSystemDataInstance::getAttachSql(Db *otherDb, const QString &generatedAttachName) +{ + QString pass = ""; + if (otherDb->getConnectionOptions().contains(DbSqliteSystemData::PASSWORD_OPT)) + pass = otherDb->getConnectionOptions()[DbSqliteSystemData::PASSWORD_OPT].toString().replace("'", "''"); + + return QString("ATTACH '%1' AS %2 KEY '%3';").arg(otherDb->getPath(), generatedAttachName, pass); +} -- cgit v1.2.3