diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp index 6df7aa95074..b50bfa41de0 100644 --- a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp +++ b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp @@ -199,6 +199,10 @@ static QMetaType::Type qIBaseTypeName2(int iType, bool hasScale) return (hasScale ? QMetaType::Double : QMetaType::Int); case SQL_INT64: return (hasScale ? QMetaType::Double : QMetaType::LongLong); +#ifdef IBASE_INT128_SUPPORTED + case SQL_INT128: + return (hasScale ? QMetaType::Double : QMetaType::LongLong); +#endif case SQL_FLOAT: case SQL_DOUBLE: return QMetaType::Double; diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index 92bedfab06e..89033c30e03 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -5063,8 +5063,8 @@ void tst_QSqlQuery::ibaseInt128() QCOMPARE(q2.value(0).metaType().id(), QMetaType::Double); QCOMPARE(q2.value(0).toDouble(), 40001.1234); QVERIFY_SQL(q2, next()); - QCOMPARE(q2.value(0).metaType().id(), QMetaType::Double); - QCOMPARE(q2.value(0).toDouble(), 12345.6789); + QCOMPARE(q2.value("price").metaType().id(), QMetaType::Double); + QCOMPARE(q2.value("price").toDouble(), 12345.6789); QVERIFY_SQL(q2, exec("SELECT sum(price) FROM " + ts.tableName())); QVERIFY_SQL(q2, next()); QCOMPARE(q2.value(0).metaType().id(), QMetaType::Double); @@ -5078,8 +5078,8 @@ void tst_QSqlQuery::ibaseInt128() QCOMPARE(q2.value(0).metaType().id(), QMetaType::QString); QCOMPARE(q2.value(0).toString(), "40001.1234"); QVERIFY_SQL(q2, next()); - QCOMPARE(q2.value(0).metaType().id(), QMetaType::QString); - QCOMPARE(q2.value(0).toString(), "12345.6789"); + QCOMPARE(q2.value("price").metaType().id(), QMetaType::QString); + QCOMPARE(q2.value("price").toString(), "12345.6789"); QVERIFY_SQL(q2, exec("SELECT sum(price) FROM " + ts.tableName())); QVERIFY_SQL(q2, next()); QCOMPARE(q2.value(0).metaType().id(), QMetaType::QString);