[PATCH v4 0/2] MR6365: odbc32: Always pass through the field id to SQLColAttributes/W
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 https://gitlab.winehq.org/wine/wine/-/merge_requests/6365
From: Alistair Leslie-Hughes <leslie_alistair(a)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: -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6365
From: Alistair Leslie-Hughes <leslie_alistair(a)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: -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6365
This merge request was approved by Hans Leidekker. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6365
participants (3)
-
Alistair Leslie-Hughes -
Alistair Leslie-Hughes (@alesliehughes) -
Hans Leidekker (@hans)