SQL/ODBC: add handling for SQL_SS_TIME2

MSSql Server sometimes returns SQL_SS_TIME2 instead SQL_TIME. Since this
value is non-standard, we have to define it by ourself.

Pick-to: 5.15 6.2 6.4 6.5
Fixes: QTBUG-109206
Change-Id: I40a4b32590d877ebfdc4b2f1d9080d8cdb2ae7a5
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Christian Ehrlicher 2023-02-09 20:58:21 +01:00 committed by Volker Hilsheimer
parent 132de92c1b
commit 7ebac20812

View File

@ -28,6 +28,11 @@ QT_BEGIN_NAMESPACE
using namespace Qt::StringLiterals;
// non-standard ODBC SQL data type from SQL Server sometimes used instead of SQL_TIME
#ifndef SQL_SS_TIME2
#define SQL_SS_TIME2 (-154)
#endif
// undefine this to prevent initial check of the ODBC driver
#define ODBC_CHECK_DRIVER
@ -342,6 +347,7 @@ static QMetaType qDecodeODBCType(SQLSMALLINT sqltype, bool isSigned = true)
case SQL_TYPE_DATE:
type = QMetaType::QDate;
break;
case SQL_SS_TIME2:
case SQL_TIME:
case SQL_TYPE_TIME:
type = QMetaType::QTime;