summaryrefslogtreecommitdiffstats
path: root/kexi/kexidb/queryschemaparameter.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
commit8362bf63dea22bbf6736609b0f49c152f975eb63 (patch)
tree0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kexi/kexidb/queryschemaparameter.cpp
downloadkoffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz
koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kexi/kexidb/queryschemaparameter.cpp')
-rw-r--r--kexi/kexidb/queryschemaparameter.cpp103
1 files changed, 103 insertions, 0 deletions
diff --git a/kexi/kexidb/queryschemaparameter.cpp b/kexi/kexidb/queryschemaparameter.cpp
new file mode 100644
index 00000000..3703de24
--- /dev/null
+++ b/kexi/kexidb/queryschemaparameter.cpp
@@ -0,0 +1,103 @@
+/* This file is part of the KDE project
+ Copyright (C) 2006 Jaroslaw Staniek <js@iidea.pl>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include "queryschemaparameter.h"
+#include "driver.h"
+
+#include <kdebug.h>
+#include <qguardedptr.h>
+
+using namespace KexiDB;
+
+QuerySchemaParameter::QuerySchemaParameter()
+ : type(Field::InvalidType)
+{
+}
+
+QuerySchemaParameter::~QuerySchemaParameter()
+{
+}
+
+QString QuerySchemaParameter::debugString() const
+{
+ return QString("msg=\"%1\" type=\"%2\"").arg(Field::typeName(type)).arg(message);
+}
+
+void KexiDB::debug(const QuerySchemaParameterList& list)
+{
+ KexiDBDbg << QString("Query parameters (%1):").arg(list.count()) << endl;
+ foreach(QuerySchemaParameterListConstIterator, it, list)
+ KexiDBDbg << " - " << (*it).debugString() << endl;
+}
+
+//================================================
+
+class QuerySchemaParameterValueListIterator::Private
+{
+ public:
+ Private(const Driver& aDriver, const QValueList<QVariant>& aParams)
+ : driver(&aDriver)
+ , params(aParams)
+ {
+ //move to last item, as the order is reversed due to parser's internals
+ paramsIt = params.fromLast(); //constBegin();
+ paramsItPosition = params.count();
+ }
+ QGuardedPtr<const Driver> driver;
+ const QValueList<QVariant> params;
+ QValueList<QVariant>::ConstIterator paramsIt;
+ uint paramsItPosition;
+};
+
+QuerySchemaParameterValueListIterator::QuerySchemaParameterValueListIterator(
+ const Driver& driver, const QValueList<QVariant>& params)
+ : d( new Private(driver, params) )
+{
+}
+
+QuerySchemaParameterValueListIterator::~QuerySchemaParameterValueListIterator()
+{
+ delete d;
+}
+
+QVariant QuerySchemaParameterValueListIterator::getPreviousValue()
+{
+ if (d->paramsItPosition == 0) { //d->params.constEnd()) {
+ KexiDBWarn << "QuerySchemaParameterValues::getPreviousValue() no prev value" << endl;
+ return QVariant();
+ }
+ QVariant res( *d->paramsIt );
+ --d->paramsItPosition;
+ --d->paramsIt;
+// ++d->paramsIt;
+ return res;
+}
+
+QString QuerySchemaParameterValueListIterator::getPreviousValueAsString(Field::Type type)
+{
+ if (d->paramsItPosition == 0) { //d->params.constEnd()) {
+ KexiDBWarn << "QuerySchemaParameterValues::getPreviousValueAsString() no prev value" << endl;
+ return d->driver->valueToSQL(type, QVariant()); //"NULL"
+ }
+ QString res( d->driver->valueToSQL(type, *d->paramsIt) );
+ --d->paramsItPosition;
+ --d->paramsIt;
+// ++d->paramsIt;
+ return res;
+}