diff options
author | Charles Yin <charles.yin@nokia.com> | 2011-07-25 14:27:52 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-07-28 10:04:08 +0200 |
commit | db6c099e42f96710f2ad09f6d3d2c94ffba600d7 (patch) | |
tree | 53738ebc9439e1de24f46b76d99600be421e2fc3 /src/declarative | |
parent | 43d940fd30ea4728664de393479438f54e888b32 (diff) |
Fix bug 20505: Offline Storage API: wrong types of row fields
fields types should be returned as same as defined, not strings.
Change-Id: I9a0d03acb79850e93cc9266e2595ee61af2089a0
Task-number:QTBUG-20505
Reviewed-on: http://codereview.qt.nokia.com/2065
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/qml/qdeclarativesqldatabase.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativesqldatabase.cpp b/src/declarative/qml/qdeclarativesqldatabase.cpp index df072ed02d..fbe5b95aeb 100644 --- a/src/declarative/qml/qdeclarativesqldatabase.cpp +++ b/src/declarative/qml/qdeclarativesqldatabase.cpp @@ -51,6 +51,7 @@ #include <QtSql/qsqlquery.h> #include <QtSql/qsqlerror.h> #include <QtSql/qsqlrecord.h> +#include <QtSql/qsqlfield.h> #include <QtGui/qdesktopservices.h> #include <QtCore/qstack.h> #include <QtCore/qcryptographichash.h> @@ -222,8 +223,13 @@ static v8::Handle<v8::Value> qmlsqldatabase_rows_index(QV8SqlDatabaseResource *r // XXX optimize v8::Local<v8::Object> row = v8::Object::New(); for (int ii = 0; ii < record.count(); ++ii) { - row->Set(r->engine->toString(record.fieldName(ii)), - r->engine->toString(record.value(ii).toString())); + QVariant v = record.value(ii); + if (v.isNull()) { + row->Set(r->engine->toString(record.fieldName(ii)), v8::Null()); + } else { + row->Set(r->engine->toString(record.fieldName(ii)), + r->engine->fromVariant(v)); + } } return row; } else { |