aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/db/asyncqueryrunner.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
commit7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch)
treea35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/coreSQLiteStudio/db/asyncqueryrunner.cpp
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/db/asyncqueryrunner.cpp')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/db/asyncqueryrunner.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/db/asyncqueryrunner.cpp b/SQLiteStudio3/coreSQLiteStudio/db/asyncqueryrunner.cpp
new file mode 100644
index 0000000..ff7e51a
--- /dev/null
+++ b/SQLiteStudio3/coreSQLiteStudio/db/asyncqueryrunner.cpp
@@ -0,0 +1,62 @@
+#include "db/asyncqueryrunner.h"
+#include "db/sqlquery.h"
+#include "db/db.h"
+#include <QDebug>
+
+AsyncQueryRunner::AsyncQueryRunner(const QString &query, const QVariant& args, Db::Flags flags)
+ : query(query), args(args), flags(flags)
+{
+ init();
+}
+
+void AsyncQueryRunner::init()
+{
+ setAutoDelete(false);
+}
+
+void AsyncQueryRunner::run()
+{
+ if (!db || !db->isValid())
+ {
+ qCritical() << "No Db or invalid Db defined in AsyncQueryRunner!";
+ emit finished(this);
+ }
+
+ SqlQueryPtr res;
+ if (args.userType() == QVariant::List)
+ {
+ res = db->exec(query, args.toList(), flags);
+ }
+ else if (args.userType() == QVariant::Hash)
+ {
+ res = db->exec(query, args.toHash(), flags);
+ }
+ else
+ {
+ qCritical() << "Invalid argument type in AsyncQueryRunner::run():" << args.userType();
+ }
+
+ results = SqlQueryPtr(res);
+ emit finished(this);
+}
+
+SqlQueryPtr AsyncQueryRunner::getResults()
+{
+ return results;
+}
+
+
+void AsyncQueryRunner::setDb(Db *db)
+{
+ this->db = db;
+}
+
+void AsyncQueryRunner::setAsyncId(quint32 id)
+{
+ asyncId = id;
+}
+
+quint32 AsyncQueryRunner::getAsyncId()
+{
+ return asyncId;
+}