From 74b2dc01c6c4c84d7759764ca30946c92b7f353f Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Tue, 5 Feb 2019 21:22:56 +0100 Subject: [PATCH] odbc32: Work around drivers that don't accept NULL name length in SQLDescribeCol. Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard --- dlls/odbc32/proxyodbc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 13546edb09f..ab285067087 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -1020,6 +1020,7 @@ SQLRETURN WINAPI ODBC32_SQLDescribeCol(SQLHSTMT StatementHandle, SQLUSMALLINT Co SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLULEN *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable) { + SQLSMALLINT dummy; SQLRETURN ret; TRACE("(StatementHandle %p, ColumnNumber %d, ColumnName %p, BufferLength %d, NameLength %p, DataType %p," @@ -1027,6 +1028,7 @@ SQLRETURN WINAPI ODBC32_SQLDescribeCol(SQLHSTMT StatementHandle, SQLUSMALLINT Co BufferLength, NameLength, DataType, ColumnSize, DecimalDigits, Nullable); if (!pSQLDescribeCol) return SQL_ERROR; + if (!NameLength) NameLength = &dummy; /* workaround for drivers that don't accept NULL NameLength */ ret = pSQLDescribeCol(StatementHandle, ColumnNumber, ColumnName, BufferLength, NameLength, DataType, ColumnSize, DecimalDigits, Nullable); @@ -2167,6 +2169,7 @@ SQLRETURN WINAPI ODBC32_SQLDescribeColW(SQLHSTMT StatementHandle, SQLUSMALLINT C SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLULEN *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable) { + SQLSMALLINT dummy; SQLRETURN ret; TRACE("(StatementHandle %p, ColumnNumber %d, ColumnName %p, BufferLength %d, NameLength %p, DataType %p," @@ -2174,6 +2177,7 @@ SQLRETURN WINAPI ODBC32_SQLDescribeColW(SQLHSTMT StatementHandle, SQLUSMALLINT C BufferLength, NameLength, DataType, ColumnSize, DecimalDigits, Nullable); if (!pSQLDescribeColW) return SQL_ERROR; + if (!NameLength) NameLength = &dummy; /* workaround for drivers that don't accept NULL NameLength */ ret = pSQLDescribeColW(StatementHandle, ColumnNumber, ColumnName, BufferLength, NameLength, DataType, ColumnSize, DecimalDigits, Nullable);