commit ea6e88f600e0147b20fb97e8da864405898f1fd7
Author: Christian Ehringfeld <c.ehringfeld@t-online.de>
Date:   Wed Mar 23 00:30:00 2016 +0100

    fix

diff --git a/src/expression.cpp b/src/expression.cpp
index eb4117d..f169b3a 100644
--- a/src/expression.cpp
+++ b/src/expression.cpp
@@ -51,8 +51,8 @@ void Expression::setOnlyColumn(bool value) {
     onlyColumn = value;
 }
 
-void Expression::appendParam(const QString &key, const QVariant &value) {
-    this->params.insert(key, value);
+void Expression::appendParam(QString key, const QVariant &value) {
+    this->params.insert(key.replace('.','_'), value);
 }
 
 QHash<QString, QVariant> Expression::getParams() const {
diff --git a/src/expression.h b/src/expression.h
index c833f6a..c70ed37 100644
--- a/src/expression.h
+++ b/src/expression.h
@@ -35,7 +35,7 @@ class Expression {
     bool getOnlyColumn() const;
     void setOnlyColumn(bool value);
 
-    void appendParam(const QString &key, const QVariant &value);
+    void appendParam(QString key, const QVariant &value);
     QHash<QString, QVariant> getParams() const;
     void setParams(const QHash<QString, QVariant> &value);
 
diff --git a/src/querybuilder.cpp b/src/querybuilder.cpp
index 1c454d2..abdf115 100644
--- a/src/querybuilder.cpp
+++ b/src/querybuilder.cpp
@@ -1097,8 +1097,8 @@ void QueryBuilder::bindValue(const QString &key, const QVariant &value,
     q.bindValue(this->placeHolder(key), value);
 }
 
-QString QueryBuilder::placeHolder(const QString &key) const {
-    return QString(":" + key);
+QString QueryBuilder::placeHolder(QString key) const {
+    return QString(":" + key.replace('.', '_'));
 }
 
 QString QueryBuilder::where(const QHash<QString, QVariant> &m,
diff --git a/src/querybuilder.h b/src/querybuilder.h
index 4d9ba13..80d6a97 100644
--- a/src/querybuilder.h
+++ b/src/querybuilder.h
@@ -100,7 +100,7 @@ class QueryBuilder {
     QString transformTypeToAbstractDbType(QString typeName) const;
     QString transformAbstractTypeToRealDbType(QString typeName) const;
     QString getColumnType(const QString &type) const;
-    virtual QString placeHolder(const QString &key) const;
+    virtual QString placeHolder(QString key) const;
     void bindValues(const QHash<QString, QVariant> &h, QSqlQuery &q,
                     bool ignoreID = false, const QString &primaryKey = QStringLiteral("id")) const;
     void bindValue(const QString &key, const QVariant &value, QSqlQuery &q) const;
