From 8f125985dbebef9ab9db31e8a180d01b7452030e Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Thu, 4 Apr 2013 08:45:50 +0200 Subject: Cleanup the SQL tests This removes some XFAILS that were no longer correct and fixes some existing problems in the tests where ODBC is concerned. Change-Id: I91de526bb50ad4046ba07ddb5336aa3714966687 Reviewed-by: Mark Brand Reviewed-by: Caroline Chao --- .../models/qsqlquerymodel/tst_qsqlquerymodel.cpp | 12 ++-- .../tst_qsqlrelationaltablemodel.cpp | 81 ++++++++++++---------- .../models/qsqltablemodel/tst_qsqltablemodel.cpp | 9 ++- 3 files changed, 60 insertions(+), 42 deletions(-) (limited to 'tests/auto/sql/models') diff --git a/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp b/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp index cb9b4a5c1f..c5eafb37fb 100644 --- a/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp +++ b/tests/auto/sql/models/qsqlquerymodel/tst_qsqlquerymodel.cpp @@ -158,7 +158,8 @@ void tst_QSqlQueryModel::createTestTables(QSqlDatabase db) { dropTestTables(db); QSqlQuery q(db); - if(tst_Databases::isPostgreSQL(db)) + QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); + if (dbType == QSqlDriverPrivate::PostgreSQL) QVERIFY_SQL( q, exec("set client_min_messages='warning'")); QVERIFY_SQL( q, exec("create table " + qTableName("test", __FILE__, db) + "(id integer not null, name varchar(20), title integer, primary key (id))")); QVERIFY_SQL( q, exec("create table " + qTableName("test2", __FILE__, db) + "(id integer not null, title varchar(20), primary key (id))")); @@ -312,12 +313,13 @@ void tst_QSqlQueryModel::insertColumn() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); DBTestModel model; model.setQuery(QSqlQuery("select * from " + qTableName("test", __FILE__, db), db)); model.fetchMore(); // necessary??? - bool isToUpper = db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"); + bool isToUpper = (dbType == QSqlDriverPrivate::Interbase) || (dbType == QSqlDriverPrivate::Oracle) || (dbType == QSqlDriverPrivate::DB2); const QString idColumn(isToUpper ? "ID" : "id"); const QString nameColumn(isToUpper ? "NAME" : "name"); const QString titleColumn(isToUpper ? "TITLE" : "title"); @@ -415,13 +417,14 @@ void tst_QSqlQueryModel::record() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlQueryModel model; model.setQuery(QSqlQuery("select * from " + qTableName("test", __FILE__, db), db)); QSqlRecord rec = model.record(); - bool isToUpper = db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"); + bool isToUpper = (dbType == QSqlDriverPrivate::Interbase) || (dbType == QSqlDriverPrivate::Oracle) || (dbType == QSqlDriverPrivate::DB2); QCOMPARE(rec.count(), 3); QCOMPARE(rec.fieldName(0), isToUpper ? QString("ID") : QString("id")); @@ -445,6 +448,7 @@ void tst_QSqlQueryModel::setHeaderData() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlQueryModel model; @@ -465,7 +469,7 @@ void tst_QSqlQueryModel::setHeaderData() QVERIFY(!model.setHeaderData(7, Qt::Horizontal, "foo", Qt::ToolTipRole)); QVERIFY(!model.headerData(7, Qt::Horizontal, Qt::ToolTipRole).isValid()); - bool isToUpper = db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2"); + bool isToUpper = (dbType == QSqlDriverPrivate::Interbase) || (dbType == QSqlDriverPrivate::Oracle) || (dbType == QSqlDriverPrivate::DB2); QCOMPARE(model.headerData(0, Qt::Horizontal).toString(), isToUpper ? QString("ID") : QString("id")); QCOMPARE(model.headerData(1, Qt::Horizontal).toString(), isToUpper ? QString("NAME") : QString("name")); QCOMPARE(model.headerData(2, Qt::Horizontal).toString(), QString("bar")); diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp index b218a0c4f7..37c08e5101 100644 --- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp @@ -151,14 +151,15 @@ void tst_QSqlRelationalTableModel::initTestCase() { foreach (const QString &dbname, dbs.dbNames) { QSqlDatabase db=QSqlDatabase::database(dbname); - if (db.driverName().startsWith("QIBASE")) + QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); + if (dbType == QSqlDriverPrivate::Interbase) { db.exec("SET DIALECT 3"); - else if (tst_Databases::isSqlServer(db)) { + } else if (dbType == QSqlDriverPrivate::MSSqlServer) { db.exec("SET ANSI_DEFAULTS ON"); db.exec("SET IMPLICIT_TRANSACTIONS OFF"); - } - else if(tst_Databases::isPostgreSQL(db)) + } else if (dbType == QSqlDriverPrivate::PostgreSQL) { db.exec("set client_min_messages='warning'"); + } recreateTestTables(db); } } @@ -245,6 +246,7 @@ void tst_QSqlRelationalTableModel::setData() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); // set the values using OnRowChange Strategy { @@ -327,7 +329,7 @@ void tst_QSqlRelationalTableModel::setData() //sybase doesn't allow tables with the same alias used twice as col names //so don't set up an identical relation when using the tds driver - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) model.setRelation(3, QSqlRelation(reltest2, "tid", "title")); model.setEditStrategy(QSqlTableModel::OnManualSubmit); @@ -340,7 +342,7 @@ void tst_QSqlRelationalTableModel::setData() QCOMPARE(model.data(model.index(2, 1)).toString(), QString("vohi2")); QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); else QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); @@ -358,12 +360,12 @@ void tst_QSqlRelationalTableModel::setData() QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); model.setRelation(2, QSqlRelation(reltest2, "tid", "title")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) model.setRelation(3, QSqlRelation(reltest2, "tid", "title")); QVERIFY_SQL(model, select()); QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); else QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); @@ -560,6 +562,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlRelationalTableModel model(0, db); @@ -567,14 +570,14 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() model.setRelation(2, QSqlRelation(reltest2, "tid", "title")); model.setSort(0, Qt::AscendingOrder); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) model.setRelation(3, QSqlRelation(reltest2, "tid", "title")); QVERIFY_SQL(model, select()); QCOMPARE(model.data(model.index(0,0)).toInt(), 1); QCOMPARE(model.data(model.index(0,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); else QCOMPARE(model.data(model.index(0,3)).toInt(), 2); @@ -588,7 +591,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(0,0)).toInt(), 1011); QCOMPARE(model.data(model.index(0,1)).toString(), QString("test")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("mister")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr")); else QCOMPARE(model.data(model.index(0,3)).toInt(), 1); @@ -596,7 +599,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(1,0)).toInt(), 1); QCOMPARE(model.data(model.index(1,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(1,2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(1,3)).toString(), QString("mister")); else QCOMPARE(model.data(model.index(1,3)).toInt(), 2); @@ -613,7 +616,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(0,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) { + if (dbType != QSqlDriverPrivate::Sybase) { QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); model.setData(model.index(0,3),1); QCOMPARE(model.data(model.index(0,3)).toString(), QString("herr")); @@ -637,7 +640,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(0,0)).toInt(),1012); QCOMPARE(model.data(model.index(0,1)).toString(), QString("george")); QCOMPARE(model.data(model.index(0,2)).toString(), QString("mister")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(0,3)).toString(), QString("mister")); else QCOMPARE(model.data(model.index(0,3)).toInt(), 2); @@ -646,7 +649,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(1,0)).toInt(),1013); QCOMPARE(model.data(model.index(1,1)).toString(), QString("kramer")); QCOMPARE(model.data(model.index(1,2)).toString(), QString("mister")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(1,3)).toString(), QString("herr")); else QCOMPARE(model.data(model.index(1,3)).toInt(), 1); @@ -654,7 +657,7 @@ void tst_QSqlRelationalTableModel::insertWithStrategies() QCOMPARE(model.data(model.index(2,0)).toInt(), 1); QCOMPARE(model.data(model.index(2,1)).toString(), QString("harry")); QCOMPARE(model.data(model.index(2,2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(2,3)).toString(), QString("herr")); else QCOMPARE(model.data(model.index(2,3)).toInt(), 1); @@ -751,12 +754,13 @@ void tst_QSqlRelationalTableModel::sort() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlRelationalTableModel model(0, db); model.setTable(reltest1); model.setRelation(2, QSqlRelation(reltest2, "tid", "title")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) model.setRelation(3, QSqlRelation(reltest2, "tid", "title")); model.setSort(2, Qt::DescendingOrder); @@ -772,7 +776,7 @@ void tst_QSqlRelationalTableModel::sort() model.setSort(3, Qt::AscendingOrder); QVERIFY_SQL(model, select()); - if (!db.driverName().startsWith("QTDS")) { + if (dbType != QSqlDriverPrivate::Sybase) { QCOMPARE(model.rowCount(), 4); QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); QCOMPARE(model.data(model.index(1, 3)).toString(), QString("mister")); @@ -801,7 +805,7 @@ void tst_QSqlRelationalTableModel::sort() model.setSort(3, Qt::AscendingOrder); QVERIFY_SQL(model, select()); - if (!db.driverName().startsWith("QTDS")) { + if (dbType != QSqlDriverPrivate::Sybase) { QCOMPARE(model.rowCount(), 6); QCOMPARE(model.data(model.index(0, 3)).toString(), QString("")); QCOMPARE(model.data(model.index(1, 3)).toString(), QString("herr")); @@ -916,13 +920,14 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlRelationalTableModel model(0, db); model.setTable(reltest1); model.setRelation(2, QSqlRelation(reltest2, "tid", "title")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) model.setRelation(3, QSqlRelation(reltest2, "tid", "title")); model.setSort(1, Qt::AscendingOrder); model.setEditStrategy(QSqlTableModel::OnManualSubmit); @@ -932,7 +937,7 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache() QCOMPARE(model.data(model.index(3, 0)).toInt(), 3); QCOMPARE(model.data(model.index(3, 1)).toString(), QString("vohi")); QCOMPARE(model.data(model.index(3, 2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(3, 3)).toString(), QString("mister")); else QCOMPARE(model.data(model.index(3, 3)).toInt(), 2 ); @@ -947,7 +952,7 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache() QCOMPARE(model.data(model.index(0, 0)).toInt(), 7); QCOMPARE(model.data(model.index(0, 1)).toString(), QString("anders")); QCOMPARE(model.data(model.index(0, 2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(0, 3)).toString(), QString("herr")); else QCOMPARE(model.data(model.index(0, 3)).toInt(), 1); @@ -955,7 +960,7 @@ void tst_QSqlRelationalTableModel::clearDisplayValuesCache() QCOMPARE(model.data(model.index(4, 0)).toInt(), 3); QCOMPARE(model.data(model.index(4, 1)).toString(), QString("vohi")); QCOMPARE(model.data(model.index(4, 2)).toString(), QString("herr")); - if (!db.driverName().startsWith("QTDS")) + if (dbType != QSqlDriverPrivate::Sybase) QCOMPARE(model.data(model.index(4, 3)).toString(), QString("mister")); else QCOMPARE(model.data(model.index(4, 3)).toInt(), 2); @@ -969,6 +974,7 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlRelationalTableModel model(0, db); model.setTable(reltest3); @@ -979,7 +985,7 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames() model.setRelation(2, QSqlRelation(reltest4, "id", "name")); QVERIFY_SQL(model, select()); - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { QCOMPARE(model.record(1).value((reltest4+QLatin1String("_name_2")).toUpper()).toString(), QString("Trondheim")); } else { @@ -992,7 +998,7 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames() rec.setValue(1, "Berge"); rec.setValue(2, 1); // Must insert the key value - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { QCOMPARE(rec.fieldName(0), QLatin1String("ID")); QCOMPARE(rec.fieldName(1), QLatin1String("NAME")); // This comes from main table } else { @@ -1001,7 +1007,7 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames() } // The duplicate field names is aliased because it's comes from the relation's display column. - if(db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) QCOMPARE(rec.fieldName(2), (reltest4+QLatin1String("_name_2")).toUpper()); else QCOMPARE(rec.fieldName(2), reltest4+QLatin1String("_name_2")); @@ -1090,8 +1096,9 @@ void tst_QSqlRelationalTableModel::casing() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); - if (db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QIBASE") || tst_Databases::isSqlServer(db)) + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::SQLite || dbType == QSqlDriverPrivate::MSSqlServer) QSKIP("The casing test for this database is irrelevant since this database does not treat different cases as separate entities"); QSqlQuery q(db); @@ -1110,7 +1117,7 @@ void tst_QSqlRelationalTableModel::casing() QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db) + " values(2, 'george', 2)")); QVERIFY_SQL( q, exec("insert into " + qTableName("casetest1", db) + " values(4, 'kramer', 2)")); - if (db.driverName().startsWith("QOCI")) { + if (dbType == QSqlDriverPrivate::Oracle) { //try an owner that doesn't exist QSqlRecord rec = db.driver()->record("doug." + qTableName("CASETEST1", db).toUpper()); QCOMPARE( rec.count(), 0); @@ -1156,13 +1163,15 @@ void tst_QSqlRelationalTableModel::escapedRelations() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); + recreateTestTables(db); QSqlRelationalTableModel model(0, db); model.setTable(reltest1); //try with relation table name quoted - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { model.setRelation(2, QSqlRelation(db.driver()->escapeIdentifier(reltest2.toUpper(),QSqlDriver::TableName), "tid", "title")); @@ -1187,7 +1196,7 @@ void tst_QSqlRelationalTableModel::escapedRelations() //try with index column quoted model.setJoinMode(QSqlRelationalTableModel::InnerJoin); - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { model.setRelation(2, QSqlRelation(reltest2, db.driver()->escapeIdentifier("tid", QSqlDriver::FieldName).toUpper(), "title")); @@ -1211,7 +1220,7 @@ void tst_QSqlRelationalTableModel::escapedRelations() //try with display column quoted model.setJoinMode(QSqlRelationalTableModel::InnerJoin); - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { model.setRelation(2, QSqlRelation(reltest2, "tid", @@ -1237,7 +1246,7 @@ void tst_QSqlRelationalTableModel::escapedRelations() //try with tablename and index and display columns quoted in the relation model.setJoinMode(QSqlRelationalTableModel::InnerJoin); - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { model.setRelation(2, QSqlRelation(reltest2, "tid", db.driver()->escapeIdentifier("title", QSqlDriver::FieldName).toUpper())); @@ -1265,12 +1274,13 @@ void tst_QSqlRelationalTableModel::escapedTableName() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); // set the values using OnRowChange Strategy with an escaped tablename { QSqlRelationalTableModel model(0, db); - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { model.setTable(db.driver()->escapeIdentifier(reltest1.toUpper(), QSqlDriver::TableName)); } else { model.setTable(db.driver()->escapeIdentifier(reltest1, QSqlDriver::TableName)); @@ -1317,7 +1327,7 @@ void tst_QSqlRelationalTableModel::escapedTableName() { QSqlRelationalTableModel model(0, db); - if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { + if (dbType == QSqlDriverPrivate::Interbase || dbType == QSqlDriverPrivate::Oracle || dbType == QSqlDriverPrivate::DB2) { model.setTable(db.driver()->escapeIdentifier(reltest1.toUpper(), QSqlDriver::TableName)); } else { model.setTable(db.driver()->escapeIdentifier(reltest1, QSqlDriver::TableName)); @@ -1453,8 +1463,9 @@ void tst_QSqlRelationalTableModel::psqlSchemaTest() QFETCH_GLOBAL(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); - if(!tst_Databases::isPostgreSQL(db)) + if (dbType != QSqlDriverPrivate::PostgreSQL) QSKIP("Postgresql specific test"); QSqlRelationalTableModel model(0, db); diff --git a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp index 771c224963..628a34f6f4 100644 --- a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp +++ b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp @@ -168,8 +168,9 @@ void tst_QSqlTableModel::dropTestTables() { for (int i = 0; i < dbs.dbNames.count(); ++i) { QSqlDatabase db = QSqlDatabase::database(dbs.dbNames.at(i)); + QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlQuery q(db); - if(tst_Databases::isPostgreSQL(db)) + if (dbType == QSqlDriverPrivate::PostgreSQL) QVERIFY_SQL( q, exec("set client_min_messages='warning'")); QStringList tableNames; @@ -196,6 +197,7 @@ void tst_QSqlTableModel::createTestTables() { for (int i = 0; i < dbs.dbNames.count(); ++i) { QSqlDatabase db = QSqlDatabase::database(dbs.dbNames.at(i)); + QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlQuery q(db); QVERIFY_SQL( q, exec("create table " + test + "(id int, name varchar(20), title int)")); @@ -204,7 +206,7 @@ void tst_QSqlTableModel::createTestTables() QVERIFY_SQL( q, exec("create table " + test3 + "(id int, random varchar(20), randomtwo varchar(20))")); - if(!tst_Databases::isSqlServer(db)) + if (dbType != QSqlDriverPrivate::MSSqlServer) QVERIFY_SQL(q, exec("create table " + qTableName("test4", __FILE__, db) + "(column1 varchar(50), column2 varchar(50), column3 varchar(50))")); else QVERIFY_SQL(q, exec("create table " + qTableName("test4", __FILE__, db) + "(column1 varchar(50), column2 varchar(50) NULL, column3 varchar(50))")); @@ -1705,10 +1707,11 @@ void tst_QSqlTableModel::primaryKeyOrder() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); QSqlQuery q(db); - if(tst_Databases::isPostgreSQL(db)) + if (dbType == QSqlDriverPrivate::PostgreSQL) QVERIFY_SQL( q, exec("set client_min_messages='warning'")); QVERIFY_SQL(q, exec("create table " + qTableName("foo", __FILE__, db) + "(a varchar(20), id int not null primary key, b varchar(20))")); -- cgit v1.2.3