Application was quering for SQL_MAX_COLUMNS_IN_TABLE (101).
Let all fields through and only convert ones that need it.
-- v4: odbc32: SQLColAttribute/W Correcly convert columns ID for ODBC v2.0 odbc32: SQLColAttribute/W pass through field id SQL_MAX_COLUMNS_IN_TABLE
From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- dlls/odbc32/proxyodbc.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 49e16b1df08..26f38d63b63 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -1003,6 +1003,7 @@ static SQLRETURN col_attribute_win32_a( struct statement *stmt, SQLUSMALLINT col
case SQL_COLUMN_TYPE: case SQL_COLUMN_DISPLAY_SIZE: + case SQL_MAX_COLUMNS_IN_TABLE: break;
default: @@ -6188,6 +6189,7 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col
case SQL_COLUMN_TYPE: case SQL_COLUMN_DISPLAY_SIZE: + case SQL_MAX_COLUMNS_IN_TABLE: break;
default:
From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
The current conversion is converting ODBC 2 to 3 which is backwards. --- dlls/odbc32/proxyodbc.c | 56 ++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 12 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 26f38d63b63..b0a7bf498e6 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -989,16 +989,32 @@ static SQLRETURN col_attribute_win32_a( struct statement *stmt, SQLUSMALLINT col
switch (field_id) { - case SQL_COLUMN_COUNT: - field_id = SQL_DESC_COUNT; + case SQL_DESC_COUNT: + field_id = SQL_COLUMN_COUNT; break;
- case SQL_COLUMN_NAME: - field_id = SQL_DESC_NAME; + case SQL_DESC_TYPE: + field_id = SQL_COLUMN_TYPE; break;
- case SQL_COLUMN_NULLABLE: - field_id = SQL_DESC_NULLABLE; + case SQL_DESC_LENGTH: + field_id = SQL_COLUMN_LENGTH; + break; + + case SQL_DESC_PRECISION: + field_id = SQL_COLUMN_PRECISION; + break; + + case SQL_DESC_SCALE: + field_id = SQL_COLUMN_SCALE; + break; + + case SQL_DESC_NULLABLE: + field_id = SQL_COLUMN_NULLABLE; + break; + + case SQL_DESC_NAME: + field_id = SQL_COLUMN_NAME; break;
case SQL_COLUMN_TYPE: @@ -6175,16 +6191,32 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col
switch (field_id) { - case SQL_COLUMN_COUNT: - field_id = SQL_DESC_COUNT; + case SQL_DESC_COUNT: + field_id = SQL_COLUMN_COUNT; break;
- case SQL_COLUMN_NAME: - field_id = SQL_DESC_NAME; + case SQL_DESC_TYPE: + field_id = SQL_COLUMN_TYPE; break;
- case SQL_COLUMN_NULLABLE: - field_id = SQL_DESC_NULLABLE; + case SQL_DESC_LENGTH: + field_id = SQL_COLUMN_LENGTH; + break; + + case SQL_DESC_PRECISION: + field_id = SQL_COLUMN_PRECISION; + break; + + case SQL_DESC_SCALE: + field_id = SQL_COLUMN_SCALE; + break; + + case SQL_DESC_NULLABLE: + field_id = SQL_COLUMN_NULLABLE; + break; + + case SQL_DESC_NAME: + field_id = SQL_COLUMN_NAME; break;
case SQL_COLUMN_TYPE:
This merge request was approved by Hans Leidekker.