diff --git a/src/plugins/sqldrivers/db2/qsql_db2.cpp b/src/plugins/sqldrivers/db2/qsql_db2.cpp index 9b6a06c378f..5e631cab2a3 100644 --- a/src/plugins/sqldrivers/db2/qsql_db2.cpp +++ b/src/plugins/sqldrivers/db2/qsql_db2.cpp @@ -168,18 +168,7 @@ static QString qDB2Warn(const QDB2DriverPrivate* d, QStringList *errorCodes = nu static QString qDB2Warn(const QDB2ResultPrivate* d, QStringList *errorCodes = nullptr) { int errorCode = 0; - QString error = qWarnDB2Handle(SQL_HANDLE_ENV, d->drv_d_func()->hEnv, &errorCode); - if (errorCodes && errorCode != 0) { - *errorCodes << QString::number(errorCode); - errorCode = 0; - } - if (!error.isEmpty()) - error += u' '; - error += qWarnDB2Handle(SQL_HANDLE_DBC, d->drv_d_func()->hDbc, &errorCode); - if (errorCodes && errorCode != 0) { - *errorCodes << QString::number(errorCode); - errorCode = 0; - } + QString error = qDB2Warn(d->drv_d_func()); if (!error.isEmpty()) error += u' '; error += qWarnDB2Handle(SQL_HANDLE_STMT, d->hStmt, &errorCode); @@ -188,34 +177,20 @@ static QString qDB2Warn(const QDB2ResultPrivate* d, QStringList *errorCodes = nu return error; } -static void qSqlWarning(const QString& message, const QDB2DriverPrivate* d) +template +static void qSqlWarning(const QString &message, const T *d) { qWarning("%s\tError: %s", message.toLocal8Bit().constData(), qDB2Warn(d).toLocal8Bit().constData()); } -static void qSqlWarning(const QString& message, const QDB2ResultPrivate* d) -{ - qWarning("%s\tError: %s", message.toLocal8Bit().constData(), - qDB2Warn(d).toLocal8Bit().constData()); -} - -static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, - const QDB2DriverPrivate* p) +template +static QSqlError qMakeError(const QString &err, QSqlError::ErrorType type, + const T *p) { QStringList errorCodes; const QString error = qDB2Warn(p, &errorCodes); - return QSqlError(QStringLiteral("QDB2: ") + err, error, type, - errorCodes.join(u';')); -} - -static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, - const QDB2ResultPrivate* p) -{ - QStringList errorCodes; - const QString error = qDB2Warn(p, &errorCodes); - return QSqlError(QStringLiteral("QDB2: ") + err, error, type, - errorCodes.join(u';')); + return QSqlError("QDB2: "_L1 + err, error, type, errorCodes.join(u';')); } static QMetaType qDecodeDB2Type(SQLSMALLINT sqltype) diff --git a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp index e09e65f223a..18289f93b54 100644 --- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp +++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp @@ -329,16 +329,10 @@ static void qSqlWarning(const QString &message, T &&val) qCWarning(lcOdbc) << message << "\tError:" << addMsg; } +template static QSqlError qMakeError(const QString &err, QSqlError::ErrorType type, - const QODBCResultPrivate *p) -{ - return errorFromDiagRecords(err, type, qODBCWarn(p)); -} - -static QSqlError qMakeError(const QString &err, - QSqlError::ErrorType type, - const QODBCDriverPrivate *p) + const T *p) { return errorFromDiagRecords(err, type, qODBCWarn(p)); }