From 5b9dd358bb33bb7dd9247574573b2cd31a948c8e Mon Sep 17 00:00:00 2001 From: APTX Date: Tue, 19 Mar 2013 20:51:38 +0100 Subject: [PATCH] Add basic wrapper for QSqlQuery --- localmylist/localmylist.pro | 7 +- localmylist/sqlquery.cpp | 145 ++++++++++++++++++++++++++++++++++++ localmylist/sqlquery.h | 36 +++++++++ 3 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 localmylist/sqlquery.cpp create mode 100644 localmylist/sqlquery.h diff --git a/localmylist/localmylist.pro b/localmylist/localmylist.pro index b3578ad..ea22659 100644 --- a/localmylist/localmylist.pro +++ b/localmylist/localmylist.pro @@ -26,7 +26,8 @@ SOURCES += \ addrelatedepisodestask.cpp \ scriptablesql.cpp \ reportengine.cpp \ - databaseclasses.cpp + databaseclasses.cpp \ + sqlquery.cpp HEADERS += \ localmylist_global.h \ @@ -46,7 +47,8 @@ HEADERS += \ addrelatedepisodestask.h \ scriptablesql.h \ reportengine.h \ - databaseclasses.h + databaseclasses.h \ + sqlquery.h CONV_HEADERS += \ include/LocalMyList/AbstractTask \ @@ -54,6 +56,7 @@ CONV_HEADERS += \ include/LocalMyList/AddRelatedEpisodesTask \ include/LocalMyList/AnimeTitleParseTask \ include/LocalMyList/Database \ + include/LocalMyList/SqlQuery \ include/LocalMyList/DirectoryScanTask \ include/LocalMyList/MyList \ include/LocalMyList/MyListExportParseTask \ diff --git a/localmylist/sqlquery.cpp b/localmylist/sqlquery.cpp new file mode 100644 index 0000000..e1dee1a --- /dev/null +++ b/localmylist/sqlquery.cpp @@ -0,0 +1,145 @@ +#include "sqlquery.h" + +#include +#include + +class SqlQueryInternal +{ +public: + SqlQueryInternal(); + + bool prepare(const QString &query); + void bindValue(const QString &placeholder, const QVariant &val, QSql::ParamType paramType = QSql::In); + bool exec(); + + bool exec(const QString &query); + + bool next(); + QVariant value(int index) const; + QVariant value(const QString &name) const; + int indexOf(const QString &name ) const; + void finish(); + + QString executedQuery() const; + QString lastError() const; + + QSqlQuery q; +}; + + +bool SqlQueryInternal::prepare(const QString &query) +{ + return q.prepare(query); +} + +void SqlQueryInternal::bindValue(const QString &placeholder, const QVariant &val, QSql::ParamType paramType) +{ + q.bindValue(placeholder, val, paramType); +} + +bool SqlQueryInternal::exec() +{ + return q.exec(); +} + +bool SqlQueryInternal::exec(const QString &query) +{ + return q.exec(query); +} + +bool SqlQueryInternal::next() +{ + return q.next(); +} + +QVariant SqlQueryInternal::value(int index) const +{ + return q.value(index); +} + +QVariant SqlQueryInternal::value(const QString &name) const +{ + return q.record().value(name); +} + +int SqlQueryInternal::indexOf(const QString &name) const +{ + return q.record().indexOf(name); +} + +void SqlQueryInternal::finish() +{ + return q.finish(); +} + +QString SqlQueryInternal::executedQuery() const +{ + return q.executedQuery(); +} + +QString SqlQueryInternal::lastError() const +{ + return q.lastError().databaseText(); +} + + +// ------------------------------- +SqlQuery::SqlQuery(QObject *parent) : + QObject(parent) +{ +} + +bool SqlQuery::prepare(const QString &query) +{ + return d->prepare(query); +} + +void SqlQuery::bindValue(const QString &placeholder, const QVariant &val, QSql::ParamType paramType) +{ + d->bindValue(placeholder, val, paramType); +} + +bool SqlQuery::exec() +{ + return d->exec(); +} + +bool SqlQuery::exec(const QString &query) +{ + return d->exec(query); +} + +bool SqlQuery::next() +{ + return d->next(); +} + +QVariant SqlQuery::value(int index) const +{ + return d->value(index); +} + +QVariant SqlQuery::value(const QString &name) const +{ + return d->value(name); +} + +int SqlQuery::indexOf(const QString &name) const +{ + return d->indexOf(name); +} + +void SqlQuery::finish() +{ + return d->finish(); +} + +QString SqlQuery::executedQuery() const +{ + return d->executedQuery(); +} + +QString SqlQuery::lastError() const +{ + return d->lastError(); +} diff --git a/localmylist/sqlquery.h b/localmylist/sqlquery.h new file mode 100644 index 0000000..15a86c3 --- /dev/null +++ b/localmylist/sqlquery.h @@ -0,0 +1,36 @@ +#ifndef SQLQUERY_H +#define SQLQUERY_H + +#include +#include + +class SqlQueryInternal; + +class SqlQuery : public QObject +{ + Q_OBJECT +public: + explicit SqlQuery(QObject *parent = 0); + + bool prepare(const QString &query); + void bindValue(const QString &placeholder, const QVariant &val, QSql::ParamType paramType = QSql::In); + bool exec(); + + bool exec(const QString &query); + + bool next(); + QVariant value(int index) const; + QVariant value(const QString &name) const; + int indexOf(const QString &name ) const; + void finish(); + + QString executedQuery() const; + QString lastError() const; + +signals: + +public slots: + SqlQueryInternal *d; +}; + +#endif // SQLQUERY_H -- 2.52.0