summaryrefslogtreecommitdiffstats
path: root/Plugins/DbAndroid/sqlqueryandroid.h
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/DbAndroid/sqlqueryandroid.h')
-rw-r--r--Plugins/DbAndroid/sqlqueryandroid.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/Plugins/DbAndroid/sqlqueryandroid.h b/Plugins/DbAndroid/sqlqueryandroid.h
new file mode 100644
index 0000000..3944c21
--- /dev/null
+++ b/Plugins/DbAndroid/sqlqueryandroid.h
@@ -0,0 +1,47 @@
+#ifndef SQLQUERYANDROID_H
+#define SQLQUERYANDROID_H
+
+#include "db/sqlquery.h"
+#include "parser/token.h"
+#include <QJsonDocument>
+
+class DbAndroidConnection;
+class DbAndroidInstance;
+
+class SqlQueryAndroid : public SqlQuery
+{
+ public:
+ SqlQueryAndroid(DbAndroidInstance* db, DbAndroidConnection* connection, const QString& query);
+ ~SqlQueryAndroid();
+
+ QString getErrorText();
+ int getErrorCode();
+ QStringList getColumnNames();
+ int columnCount();
+ void rewind();
+
+ protected:
+ SqlResultsRowPtr nextInternal();
+ bool hasNextInternal();
+ bool execInternal(const QList<QVariant>& args);
+ bool execInternal(const QHash<QString, QVariant>& args);
+
+ private:
+ bool executeAndHandleResponse(const QString& query);
+ void resetResponse();
+
+ static QString convertArg(const QVariant& value);
+
+ DbAndroidInstance* db = nullptr;
+ DbAndroidConnection* connection = nullptr;
+ QString queryString;
+ TokenList tokenizedQuery;
+ int errorCode = 0;
+ QString errorText;
+ QStringList resultColumns;
+ QList<QVariantHash> resultDataMap;
+ QList<QVariantList> resultDataList;
+ int currentRow = -1;
+};
+
+#endif // SQLQUERYANDROID_H