summaryrefslogtreecommitdiffstats
path: root/src/sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.cpp14
-rw-r--r--src/sql/kernel/qsqlquery.cpp6
-rw-r--r--src/sql/kernel/qsqlresult.cpp6
3 files changed, 9 insertions, 17 deletions
diff --git a/src/sql/drivers/ibase/qsql_ibase.cpp b/src/sql/drivers/ibase/qsql_ibase.cpp
index cc26bfe7e85..c751fea825d 100644
--- a/src/sql/drivers/ibase/qsql_ibase.cpp
+++ b/src/sql/drivers/ibase/qsql_ibase.cpp
@@ -1030,11 +1030,15 @@ bool QIBaseResult::exec()
*((qint64*)d->inda->sqlvar[para].sqldata) = val.toLongLong();
break;
case SQL_LONG:
- if (d->inda->sqlvar[para].sqlscale < 0)
- *((long*)d->inda->sqlvar[para].sqldata) =
- (long)floor(0.5 + val.toDouble() * pow(10.0, d->inda->sqlvar[para].sqlscale * -1));
- else
- *((long*)d->inda->sqlvar[para].sqldata) = (long)val.toLongLong();
+ if (d->inda->sqlvar[para].sqllen == 4) {
+ if (d->inda->sqlvar[para].sqlscale < 0)
+ *((qint32*)d->inda->sqlvar[para].sqldata) =
+ (qint32)floor(0.5 + val.toDouble() * pow(10.0, d->inda->sqlvar[para].sqlscale * -1));
+ else
+ *((qint32*)d->inda->sqlvar[para].sqldata) = (qint32)val.toInt();
+ } else {
+ *((qint64*)d->inda->sqlvar[para].sqldata) = val.toLongLong();
+ }
break;
case SQL_SHORT:
if (d->inda->sqlvar[para].sqlscale < 0)
diff --git a/src/sql/kernel/qsqlquery.cpp b/src/sql/kernel/qsqlquery.cpp
index 2b1bd5feb1d..abbea0d4a74 100644
--- a/src/sql/kernel/qsqlquery.cpp
+++ b/src/sql/kernel/qsqlquery.cpp
@@ -1083,12 +1083,6 @@ bool QSqlQuery::execBatch(BatchExecutionMode mode)
To bind a NULL value, use a null QVariant; for example, use
\c {QVariant(QVariant::String)} if you are binding a string.
- Values cannot be bound to multiple locations in the query, eg:
- \code
- INSERT INTO testtable (id, name, samename) VALUES (:id, :name, :name)
- \endcode
- Binding to name will bind to the first :name, but not the second.
-
\sa addBindValue(), prepare(), exec(), boundValue(), boundValues()
*/
void QSqlQuery::bindValue(const QString& placeholder, const QVariant& val,
diff --git a/src/sql/kernel/qsqlresult.cpp b/src/sql/kernel/qsqlresult.cpp
index 09b8f8d8895..f933e6eeb1e 100644
--- a/src/sql/kernel/qsqlresult.cpp
+++ b/src/sql/kernel/qsqlresult.cpp
@@ -704,12 +704,6 @@ void QSqlResult::bindValue(int index, const QVariant& val, QSql::ParamType param
Binds the value \a val of parameter type \a paramType to the \a
placeholder name in the current record (row).
- Values cannot be bound to multiple locations in the query, eg:
- \code
- INSERT INTO testtable (id, name, samename) VALUES (:id, :name, :name)
- \endcode
- Binding to name will bind to the first :name, but not the second.
-
\note Binding an undefined placeholder will result in undefined behavior.
\sa QSqlQuery::bindValue()