]> Some of my projects - localmylist.git/commitdiff
Add basic wrapper for QSqlQuery
authorAPTX <marek321@gmail.com>
Tue, 19 Mar 2013 19:51:38 +0000 (20:51 +0100)
committerAPTX <marek321@gmail.com>
Tue, 19 Mar 2013 19:51:38 +0000 (20:51 +0100)
localmylist/localmylist.pro
localmylist/sqlquery.cpp [new file with mode: 0644]
localmylist/sqlquery.h [new file with mode: 0644]

index b3578ad86ca01958a5f5743e3f7a0ff978f27db4..ea22659eca021c6f1a78513daea56c594fae39de 100644 (file)
@@ -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 (file)
index 0000000..e1dee1a
--- /dev/null
@@ -0,0 +1,145 @@
+#include "sqlquery.h"
+
+#include <QSqlRecord>
+#include <QSqlError>
+
+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 (file)
index 0000000..15a86c3
--- /dev/null
@@ -0,0 +1,36 @@
+#ifndef SQLQUERY_H
+#define SQLQUERY_H
+
+#include <QObject>
+#include <QSqlQuery>
+
+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