diff options
| author | 2021-12-17 07:06:30 -0500 | |
|---|---|---|
| committer | 2021-12-17 07:06:30 -0500 | |
| commit | 1fdc150116cad39aae5c5da407c3312b47a59e3a (patch) | |
| tree | 123c79a4d7ad2d45781ba03ce939f7539fb428d8 /Plugins/DbAndroid/dbandroidinstance.cpp | |
| parent | feda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (diff) | |
New upstream version 3.3.3+dfsg1.upstream/3.3.3+dfsg1
Diffstat (limited to 'Plugins/DbAndroid/dbandroidinstance.cpp')
| -rw-r--r-- | Plugins/DbAndroid/dbandroidinstance.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Plugins/DbAndroid/dbandroidinstance.cpp b/Plugins/DbAndroid/dbandroidinstance.cpp index 900b929..7dce61c 100644 --- a/Plugins/DbAndroid/dbandroidinstance.cpp +++ b/Plugins/DbAndroid/dbandroidinstance.cpp @@ -10,6 +10,7 @@ #include "schemaresolver.h" #include "services/notifymanager.h" #include "db/dbsqlite3.h" +#include "parser/parser.h" #include <QJsonObject> #include <QJsonArray> #include <QJsonDocument> @@ -26,6 +27,37 @@ DbAndroidInstance::~DbAndroidInstance() closeInternal(); } +QList<AliasedColumn> DbAndroidInstance::columnsForQuery(const QString& query) +{ + Parser parser; + bool res = parser.parse(query); + if (!res) + { + qWarning() << "Could not parse query for providing columnsForQuery from DbAndroid:" << query; + return QList<AliasedColumn>(); + } + + if (!isDataReturningQuery(parser.getQueries().last()->queryType)) + return QList<AliasedColumn>(); + + SqlQueryPtr results = exec(query); + if (results->isError()) + { + qWarning() << "Could not execute query for providing columnsForQuery from DbAndroid:" << query + << ". The error was:" << results->getErrorText(); + return QList<AliasedColumn>(); + } + + QList<AliasedColumn> columns; + AliasedColumn column; + for (const QString& colName : results->getColumnNames()) + { + column.setAlias(colName); + columns << column; + } + return columns; +} + SqlQueryPtr DbAndroidInstance::prepare(const QString& query) { return SqlQueryPtr(new SqlQueryAndroid(this, connection, query)); |
