summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp
new file mode 100644
index 0000000..0f16098
--- /dev/null
+++ b/SQLiteStudio3/coreSQLiteStudio/plugins/dbpluginsqlite3.cpp
@@ -0,0 +1,47 @@
+#include "dbpluginsqlite3.h"
+#include "db/dbsqlite3.h"
+#include "common/unused.h"
+#include <QFileInfo>
+
+Db* DbPluginSqlite3::getInstance(const QString& name, const QString& path, const QHash<QString, QVariant>& options, QString* errorMessage)
+{
+ UNUSED(errorMessage);
+ Db* db = new DbSqlite3(name, path, options);
+
+ if (!db->openForProbing())
+ {
+ delete db;
+ return nullptr;
+ }
+
+ SqlQueryPtr results = db->exec("SELECT * FROM sqlite_master");
+ if (results->isError())
+ {
+ delete db;
+ return nullptr;
+ }
+
+ db->closeQuiet();
+ return db;
+}
+
+QString DbPluginSqlite3::getLabel() const
+{
+ return "SQLite 3";
+}
+
+QList<DbPluginOption> DbPluginSqlite3::getOptionsList() const
+{
+ return QList<DbPluginOption>();
+}
+
+QString DbPluginSqlite3::generateDbName(const QVariant& baseValue)
+{
+ QFileInfo file(baseValue.toString());
+ return file.baseName();
+}
+
+bool DbPluginSqlite3::checkIfDbServedByPlugin(Db* db) const
+{
+ return (db && dynamic_cast<DbSqlite3*>(db));
+}