1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 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
|