From f95009bb3e6c38271e1a58c1395f9b985d8de4af Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Mon, 5 May 2025 09:07:19 +1000 Subject: [PATCH] Updated odbc32-fixes patchset Corrected Commit ascii to ANSI. Reset patch numbers. Convert SQL_C_WCHAR to SQL_CHAR when required for ANSI driver. --- ...d-function-pointer-for-SQLBindParam.patch} | 8 +-- ...dParameter-handle-fallback-function.patch} | 6 +- ...nectAttr-W-handle-fallback-function.patch} | 8 +-- ...loaded-driver-SQL_ATTR_ODBC_VERSION.patch} | 14 ++--- ...odbc32-SQLGetData-support-ODBC-v2.0.patch} | 4 +- ...SQLColAttributesW-support-ODBC-v2.0.patch} | 8 +-- ...AttrW-support-fallback-for-ODBC-v2..patch} | 8 +-- ...ibutes-W-fall-throught-for-unknown-.patch} | 10 ++-- ...onnectW-fallback-to-SQLDriverConnec.patch} | 6 +- ...2-SQLGetInfoW-support-ANSI-fallback.patch} | 8 +-- ...DirectW-call-fallback-SQLExecDirect.patch} | 6 +- ...2-SQLDescribeColW-add-ANSI-fallback.patch} | 8 +-- ...2-SQLGetStmtAttrW-add-ANSI-fallback.patch} | 8 +-- ...2-SQLSetStmtAttrW-add-ANSI-fallback.patch} | 8 +-- ...> 0015-odbc32-Various-ANSI-fallback.patch} | 18 +++--- ...olAttributesW-support-ANSI-fallback.patch} | 10 ++-- ...-SQLColAttributeW-Add-ANSI-fallback.patch} | 10 ++-- ...32-SQLGetDiagRecW-add-ANSI-fallback.patch} | 10 ++-- ...c32-SQLNativeSqlW-add-ANSI-fallback.patch} | 8 +-- ...dbc32-SQLPrepareW-add-ANSI-fallback.patch} | 8 +-- ...ributesW-accept-field-id-SQL_COLUMN_.patch | 33 ++++++++++ ...l-remap-unicode-field-when-using-ANS.patch | 60 +++++++++++++++++++ ...LFetch-convert-to-ANSI-when-required.patch | 50 ++++++++++++++++ ...odbc32-SQLGetData-handle-ANSI-driver.patch | 60 +++++++++++++++++++ 24 files changed, 290 insertions(+), 87 deletions(-) rename patches/odbc32-fixes/{0007-odbc32-Load-function-pointer-for-SQLBindParam.patch => 0001-odbc32-Load-function-pointer-for-SQLBindParam.patch} (88%) rename patches/odbc32-fixes/{0008-odbc32-SQLBindParameter-handle-fallback-function.patch => 0002-odbc32-SQLBindParameter-handle-fallback-function.patch} (92%) rename patches/odbc32-fixes/{0009-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch => 0003-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch} (83%) rename patches/odbc32-fixes/{0012-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch => 0004-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch} (80%) rename patches/odbc32-fixes/{0013-odbc32-SQLGetData-support-ODBC-v2.0.patch => 0005-odbc32-SQLGetData-support-ODBC-v2.0.patch} (93%) rename patches/odbc32-fixes/{0014-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch => 0006-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch} (89%) rename patches/odbc32-fixes/{0015-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch => 0007-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch} (83%) rename patches/odbc32-fixes/{0018-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch => 0008-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch} (79%) rename patches/odbc32-fixes/{0019-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch => 0009-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch} (93%) rename patches/odbc32-fixes/{0020-odbc32-SQLGetInfoW-support-ascii-fallback.patch => 0010-odbc32-SQLGetInfoW-support-ANSI-fallback.patch} (92%) rename patches/odbc32-fixes/{0021-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch => 0011-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch} (91%) rename patches/odbc32-fixes/{0022-odbc32-SQLDescribeColW-add-ascii-fallback.patch => 0012-odbc32-SQLDescribeColW-add-ANSI-fallback.patch} (86%) rename patches/odbc32-fixes/{0023-odbc32-SQLGetStmtAttrW-add-ascii-fallback.patch => 0013-odbc32-SQLGetStmtAttrW-add-ANSI-fallback.patch} (78%) rename patches/odbc32-fixes/{0024-odbc32-SQLSetStmtAttrW-add-ascii-fallback.patch => 0014-odbc32-SQLSetStmtAttrW-add-ANSI-fallback.patch} (81%) rename patches/odbc32-fixes/{0025-odbc32-Various-ascii-fallback.patch => 0015-odbc32-Various-ANSI-fallback.patch} (84%) rename patches/odbc32-fixes/{0026-odbc32-SQLColAttributesW-support-ascii-fallback.patch => 0016-odbc32-SQLColAttributesW-support-ANSI-fallback.patch} (91%) rename patches/odbc32-fixes/{0027-odbc32-SQLColAttributeW-Add-ascii-fallback.patch => 0017-odbc32-SQLColAttributeW-Add-ANSI-fallback.patch} (88%) rename patches/odbc32-fixes/{0028-SQLGetDiagRecW-Add-ascii-fallback.patch => 0018-odbc32-SQLGetDiagRecW-add-ANSI-fallback.patch} (85%) rename patches/odbc32-fixes/{0029-odbc32-SQLNativeSqlW-add-ascii-fallback.patch => 0019-odbc32-SQLNativeSqlW-add-ANSI-fallback.patch} (88%) rename patches/odbc32-fixes/{0030-odbc32-SQLPrepareW-add-ascii-fallback.patch => 0020-odbc32-SQLPrepareW-add-ANSI-fallback.patch} (83%) create mode 100644 patches/odbc32-fixes/0021-odbc32-SQLColAttributesW-accept-field-id-SQL_COLUMN_.patch create mode 100644 patches/odbc32-fixes/0022-odbc32-SQLBindCol-remap-unicode-field-when-using-ANS.patch create mode 100644 patches/odbc32-fixes/0023-odbc32-SQLFetch-convert-to-ANSI-when-required.patch create mode 100644 patches/odbc32-fixes/0024-odbc32-SQLGetData-handle-ANSI-driver.patch diff --git a/patches/odbc32-fixes/0007-odbc32-Load-function-pointer-for-SQLBindParam.patch b/patches/odbc32-fixes/0001-odbc32-Load-function-pointer-for-SQLBindParam.patch similarity index 88% rename from patches/odbc32-fixes/0007-odbc32-Load-function-pointer-for-SQLBindParam.patch rename to patches/odbc32-fixes/0001-odbc32-Load-function-pointer-for-SQLBindParam.patch index 20177821..c4dd006e 100644 --- a/patches/odbc32-fixes/0007-odbc32-Load-function-pointer-for-SQLBindParam.patch +++ b/patches/odbc32-fixes/0001-odbc32-Load-function-pointer-for-SQLBindParam.patch @@ -1,14 +1,14 @@ -From cace313e628d0edd434f6f30c911f7bd91062adb Mon Sep 17 00:00:00 2001 +From cbca8076ac6f6efe8d6832775b56cdd40fe8108b Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 12 Jul 2024 14:44:43 +1000 -Subject: [PATCH 07/15] odbc32: Load function pointer for SQLBindParam +Subject: [PATCH] odbc32: Load function pointer for SQLBindParam --- dlls/odbc32/proxyodbc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index c4e1c046edc..6eb15687f92 100644 +index d11b4122776..9a079175d42 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -50,6 +50,7 @@ struct win32_funcs @@ -28,5 +28,5 @@ index c4e1c046edc..6eb15687f92 100644 LOAD_FUNCPTR( SQLBrowseConnect ) LOAD_FUNCPTR( SQLBrowseConnectW ) -- -2.43.0 +2.47.2 diff --git a/patches/odbc32-fixes/0008-odbc32-SQLBindParameter-handle-fallback-function.patch b/patches/odbc32-fixes/0002-odbc32-SQLBindParameter-handle-fallback-function.patch similarity index 92% rename from patches/odbc32-fixes/0008-odbc32-SQLBindParameter-handle-fallback-function.patch rename to patches/odbc32-fixes/0002-odbc32-SQLBindParameter-handle-fallback-function.patch index f991899d..a5b5f696 100644 --- a/patches/odbc32-fixes/0008-odbc32-SQLBindParameter-handle-fallback-function.patch +++ b/patches/odbc32-fixes/0002-odbc32-SQLBindParameter-handle-fallback-function.patch @@ -1,4 +1,4 @@ -From 6159b0b10211094af4f0d5b8e6bff5c589664025 Mon Sep 17 00:00:00 2001 +From 1a1b88dd5a0a23c64bf4aee2e64f30c418181be0 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 12 Jul 2024 14:40:32 +1000 Subject: [PATCH] odbc32: SQLBindParameter handle fallback function @@ -8,10 +8,10 @@ Subject: [PATCH] odbc32: SQLBindParameter handle fallback function 1 file changed, 28 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index d11b4122776..3eb53288c65 100644 +index 9a079175d42..aa886d01e33 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -5522,9 +5522,37 @@ static SQLRETURN bind_parameter_win32( struct statement *stmt, SQLUSMALLINT para +@@ -5524,9 +5524,37 @@ static SQLRETURN bind_parameter_win32( struct statement *stmt, SQLUSMALLINT para SQLSMALLINT value_type, SQLSMALLINT param_type, SQLULEN size, SQLSMALLINT digits, SQLPOINTER value, SQLLEN buflen, SQLLEN *len ) { diff --git a/patches/odbc32-fixes/0009-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch b/patches/odbc32-fixes/0003-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch similarity index 83% rename from patches/odbc32-fixes/0009-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch rename to patches/odbc32-fixes/0003-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch index bbadc69f..3aa52182 100644 --- a/patches/odbc32-fixes/0009-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch +++ b/patches/odbc32-fixes/0003-odbc32-SQLSetConnectAttr-W-handle-fallback-function.patch @@ -1,4 +1,4 @@ -From 1b5f6b996f8a1f314e935657f5e205717ace23b4 Mon Sep 17 00:00:00 2001 +From 987b50c3a705029e222f444caa453729483eac67 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 12 Jul 2024 14:55:47 +1000 Subject: [PATCH] odbc32: SQLSetConnectAttr/W handle fallback function @@ -8,10 +8,10 @@ Subject: [PATCH] odbc32: SQLSetConnectAttr/W handle fallback function 1 file changed, 5 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index 7099027c2b4..632738b9533 100644 +index aa886d01e33..4fdd242f3b5 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6334,6 +6334,11 @@ static SQLRETURN set_connect_attr_win32_w( struct connection *con, SQLINTEGER at +@@ -6713,6 +6713,11 @@ static SQLRETURN set_connect_attr_win32_w( struct connection *con, SQLINTEGER at if (con->hdr.win32_funcs->SQLSetConnectAttrW) return con->hdr.win32_funcs->SQLSetConnectAttrW( con->hdr.win32_handle, attr, value, len ); if (con->hdr.win32_funcs->SQLSetConnectAttr) FIXME( "Unicode to ANSI conversion not handled\n" ); @@ -24,5 +24,5 @@ index 7099027c2b4..632738b9533 100644 } -- -2.43.0 +2.47.2 diff --git a/patches/odbc32-fixes/0012-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch b/patches/odbc32-fixes/0004-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch similarity index 80% rename from patches/odbc32-fixes/0012-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch rename to patches/odbc32-fixes/0004-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch index 5f9aac44..15b6fbf0 100644 --- a/patches/odbc32-fixes/0012-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch +++ b/patches/odbc32-fixes/0004-odbc32-Record-loaded-driver-SQL_ATTR_ODBC_VERSION.patch @@ -1,4 +1,4 @@ -From 02836ce54a6a32a72cc696f783f6241da23fa385 Mon Sep 17 00:00:00 2001 +From 7d25d7fa0ee65c209e8c58f6ce276416931d8052 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 18 Jul 2024 07:13:48 +1000 Subject: [PATCH] odbc32: Record loaded driver SQL_ATTR_ODBC_VERSION @@ -9,10 +9,10 @@ Subject: [PATCH] odbc32: Record loaded driver SQL_ATTR_ODBC_VERSION 2 files changed, 5 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index d48c3d822fa..1977e766950 100644 +index 4fdd242f3b5..c0ab9db9879 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -463,6 +463,7 @@ static struct environment *create_environment( void ) +@@ -464,6 +464,7 @@ static struct environment *create_environment( void ) if (!(ret = calloc( 1, sizeof(*ret) ))) return NULL; init_object( &ret->hdr, SQL_HANDLE_ENV, NULL ); ret->attr_version = SQL_OV_ODBC2; @@ -20,7 +20,7 @@ index d48c3d822fa..1977e766950 100644 return ret; } -@@ -1173,6 +1174,9 @@ static SQLRETURN set_env_attr( struct environment *env, SQLINTEGER attr, SQLPOIN +@@ -1265,6 +1266,9 @@ static SQLRETURN set_env_attr( struct environment *env, SQLINTEGER attr, SQLPOIN } else if (env->hdr.win32_handle) { @@ -31,10 +31,10 @@ index d48c3d822fa..1977e766950 100644 ret = env->hdr.win32_funcs->SQLSetEnvAttr( env->hdr.win32_handle, attr, value, len ); } diff --git a/dlls/odbc32/unixlib.h b/dlls/odbc32/unixlib.h -index c771e16f9e3..05ee89c57db 100644 +index c865a83711d..4ff13a68add 100644 --- a/dlls/odbc32/unixlib.h +++ b/dlls/odbc32/unixlib.h -@@ -211,6 +211,7 @@ struct environment +@@ -205,6 +205,7 @@ struct environment UINT32 sources_idx; void *sources_key; BOOL sources_system; @@ -43,5 +43,5 @@ index c771e16f9e3..05ee89c57db 100644 struct connection -- -2.43.0 +2.47.2 diff --git a/patches/odbc32-fixes/0013-odbc32-SQLGetData-support-ODBC-v2.0.patch b/patches/odbc32-fixes/0005-odbc32-SQLGetData-support-ODBC-v2.0.patch similarity index 93% rename from patches/odbc32-fixes/0013-odbc32-SQLGetData-support-ODBC-v2.0.patch rename to patches/odbc32-fixes/0005-odbc32-SQLGetData-support-ODBC-v2.0.patch index 13471fe1..e1d86abd 100644 --- a/patches/odbc32-fixes/0013-odbc32-SQLGetData-support-ODBC-v2.0.patch +++ b/patches/odbc32-fixes/0005-odbc32-SQLGetData-support-ODBC-v2.0.patch @@ -1,4 +1,4 @@ -From f16a96be2b219f8e7733a36dc147f5247b618870 Mon Sep 17 00:00:00 2001 +From bf0ca6561dde86d00f9362e07c2ceb4fb7001c5f Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 17 Jul 2024 21:55:20 +1000 Subject: [PATCH] odbc32: SQLGetData support ODBC v2.0 @@ -8,7 +8,7 @@ Subject: [PATCH] odbc32: SQLGetData support ODBC v2.0 1 file changed, 24 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index c16c9a6da69..18d3df1007f 100644 +index c0ab9db9879..64740bd5169 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -2468,11 +2468,35 @@ static SQLRETURN get_data_unix( struct statement *stmt, SQLUSMALLINT column, SQL diff --git a/patches/odbc32-fixes/0014-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch b/patches/odbc32-fixes/0006-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch similarity index 89% rename from patches/odbc32-fixes/0014-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch rename to patches/odbc32-fixes/0006-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch index 4d8cfdd8..ade508f7 100644 --- a/patches/odbc32-fixes/0014-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch +++ b/patches/odbc32-fixes/0006-odbc32-SQLColAttributesW-support-ODBC-v2.0.patch @@ -1,4 +1,4 @@ -From 5874cf0a309a0ecfa97206b8b15734485920c325 Mon Sep 17 00:00:00 2001 +From 476b2f23b33d64138ca90073f3d88d91856d3bb1 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 17 Jul 2024 22:03:03 +1000 Subject: [PATCH] odbc32: SQLColAttributesW support ODBC v2.0 @@ -8,10 +8,10 @@ Subject: [PATCH] odbc32: SQLColAttributesW support ODBC v2.0 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index 18d3df1007f..8d51ad37176 100644 +index 64740bd5169..742823cf08d 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6256,6 +6256,9 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col +@@ -6261,6 +6261,9 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col SQLPOINTER char_attr, SQLSMALLINT buflen, SQLSMALLINT *retlen, SQLLEN *num_attr ) { @@ -21,7 +21,7 @@ index 18d3df1007f..8d51ad37176 100644 if (stmt->hdr.win32_funcs->SQLColAttributeW) return stmt->hdr.win32_funcs->SQLColAttributeW( stmt->hdr.win32_handle, col, field_id, char_attr, buflen, retlen, num_attr ); -@@ -6315,11 +6318,23 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col +@@ -6320,11 +6323,23 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col return SQL_ERROR; } diff --git a/patches/odbc32-fixes/0015-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch b/patches/odbc32-fixes/0007-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch similarity index 83% rename from patches/odbc32-fixes/0015-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch rename to patches/odbc32-fixes/0007-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch index 733236f2..fc260dd4 100644 --- a/patches/odbc32-fixes/0015-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch +++ b/patches/odbc32-fixes/0007-odbc32-SQLSetStmtAttrW-support-fallback-for-ODBC-v2..patch @@ -1,4 +1,4 @@ -From 2003987040ac9ac13d899c299b1375024a18a1dc Mon Sep 17 00:00:00 2001 +From 2a020e9d35ae25858e0642b06c025dc686594fec Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 17 Jul 2024 22:04:39 +1000 Subject: [PATCH] odbc32: SQLSetStmtAttrW support fallback for ODBC v2.0 @@ -8,10 +8,10 @@ Subject: [PATCH] odbc32: SQLSetStmtAttrW support fallback for ODBC v2.0 1 file changed, 5 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index f7a6535db37..d0661406fae 100644 +index 742823cf08d..d0f3a837745 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -7585,6 +7585,11 @@ static SQLRETURN set_stmt_attr_win32_w( struct statement *stmt, SQLINTEGER attr, +@@ -7948,6 +7948,11 @@ static SQLRETURN set_stmt_attr_win32_w( struct statement *stmt, SQLINTEGER attr, if (stmt->hdr.win32_funcs->SQLSetStmtAttrW) return stmt->hdr.win32_funcs->SQLSetStmtAttrW( stmt->hdr.win32_handle, attr, value, len ); if (stmt->hdr.win32_funcs->SQLSetStmtAttr) FIXME( "Unicode to ANSI conversion not handled\n" ); @@ -24,5 +24,5 @@ index f7a6535db37..d0661406fae 100644 } -- -2.43.0 +2.47.2 diff --git a/patches/odbc32-fixes/0018-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch b/patches/odbc32-fixes/0008-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch similarity index 79% rename from patches/odbc32-fixes/0018-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch rename to patches/odbc32-fixes/0008-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch index e4f7885a..38597e50 100644 --- a/patches/odbc32-fixes/0018-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch +++ b/patches/odbc32-fixes/0008-odbc32-SQLColAttributes-W-fall-throught-for-unknown-.patch @@ -1,4 +1,4 @@ -From 2e310f42d27c6b26631124bc3622a7fc6c80167e Mon Sep 17 00:00:00 2001 +From aab4645ff5f308dcbd696f29720247ac8f07ae69 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 28 Aug 2024 07:57:17 +1000 Subject: [PATCH] odbc32: SQLColAttributes/W fall throught for unknown field @@ -9,10 +9,10 @@ Subject: [PATCH] odbc32: SQLColAttributes/W fall throught for unknown field 1 file changed, 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index c2dcf76de07..4daa19140a3 100644 +index d0f3a837745..5d2c4a19915 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -1027,7 +1027,6 @@ static SQLRETURN col_attribute_win32_a( struct statement *stmt, SQLUSMALLINT col +@@ -1035,7 +1035,6 @@ static SQLRETURN col_attribute_win32_a( struct statement *stmt, SQLUSMALLINT col default: FIXME( "field id %u not handled\n", field_id ); @@ -20,7 +20,7 @@ index c2dcf76de07..4daa19140a3 100644 } return stmt->hdr.win32_funcs->SQLColAttributes( stmt->hdr.win32_handle, col, field_id, char_attr, buflen, -@@ -6270,7 +6269,6 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col +@@ -6320,7 +6319,6 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col default: FIXME( "field id %u not handled\n", field_id ); @@ -29,5 +29,5 @@ index c2dcf76de07..4daa19140a3 100644 ret = stmt->hdr.win32_funcs->SQLColAttributesW( stmt->hdr.win32_handle, col, field_id, char_attr, buflen, -- -2.45.2 +2.47.2 diff --git a/patches/odbc32-fixes/0019-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch b/patches/odbc32-fixes/0009-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch similarity index 93% rename from patches/odbc32-fixes/0019-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch rename to patches/odbc32-fixes/0009-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch index 461171d1..4ef0e291 100644 --- a/patches/odbc32-fixes/0019-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch +++ b/patches/odbc32-fixes/0009-odbc32-SQLDriverConnectW-fallback-to-SQLDriverConnec.patch @@ -1,4 +1,4 @@ -From 518a165d51be822ae34c89146cd6a0d75e41852b Mon Sep 17 00:00:00 2001 +From 9afd532ca391aa96bde3afdebcccdb9bc486ae2c Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 26 Apr 2025 12:33:23 +1000 Subject: [PATCH] odbc32: SQLDriverConnectW fallback to SQLDriverConnect when @@ -9,10 +9,10 @@ Subject: [PATCH] odbc32: SQLDriverConnectW fallback to SQLDriverConnect when 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index cf9d72e8452..e26fdcb8620 100644 +index 5d2c4a19915..56556bbdac9 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6861,11 +6861,44 @@ static SQLRETURN driver_connect_win32_w( struct connection *con, SQLHWND window, +@@ -6866,11 +6866,44 @@ static SQLRETURN driver_connect_win32_w( struct connection *con, SQLHWND window, SQLSMALLINT len, SQLWCHAR *out_conn_str, SQLSMALLINT buflen, SQLSMALLINT *len2, SQLUSMALLINT completion ) { diff --git a/patches/odbc32-fixes/0020-odbc32-SQLGetInfoW-support-ascii-fallback.patch b/patches/odbc32-fixes/0010-odbc32-SQLGetInfoW-support-ANSI-fallback.patch similarity index 92% rename from patches/odbc32-fixes/0020-odbc32-SQLGetInfoW-support-ascii-fallback.patch rename to patches/odbc32-fixes/0010-odbc32-SQLGetInfoW-support-ANSI-fallback.patch index b78af175..4e5f3f63 100644 --- a/patches/odbc32-fixes/0020-odbc32-SQLGetInfoW-support-ascii-fallback.patch +++ b/patches/odbc32-fixes/0010-odbc32-SQLGetInfoW-support-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From 53904cea4cd192552ab26c247593c91ca0b81993 Mon Sep 17 00:00:00 2001 +From f9722335c423390f60e2cd72dc4a9d60c8846990 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 26 Apr 2025 16:27:58 +1000 -Subject: [PATCH] odbc32: SQLGetInfoW support ascii fallback. +Subject: [PATCH] odbc32: SQLGetInfoW support ANSI fallback. --- dlls/odbc32/proxyodbc.c | 72 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index d11b4122776..cc7b9309562 100644 +index 56556bbdac9..63539882a61 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6924,13 +6924,81 @@ static SQLRETURN get_info_unix_w( struct connection *con, SQLUSMALLINT type, SQL +@@ -7033,13 +7033,81 @@ static SQLRETURN get_info_unix_w( struct connection *con, SQLUSMALLINT type, SQL return ODBC_CALL( SQLGetInfoW, ¶ms ); } diff --git a/patches/odbc32-fixes/0021-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch b/patches/odbc32-fixes/0011-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch similarity index 91% rename from patches/odbc32-fixes/0021-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch rename to patches/odbc32-fixes/0011-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch index d0129180..c4508851 100644 --- a/patches/odbc32-fixes/0021-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch +++ b/patches/odbc32-fixes/0011-odbc32-SQLExecDirectW-call-fallback-SQLExecDirect.patch @@ -1,4 +1,4 @@ -From 6beecab75df0c60ccde26fe8571172166efd5d72 Mon Sep 17 00:00:00 2001 +From c78b5e8e4749612b72f2c838ba124c9469ed39e9 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 26 Apr 2025 17:07:21 +1000 Subject: [PATCH] odbc32: SQLExecDirectW call fallback SQLExecDirect @@ -8,7 +8,7 @@ Subject: [PATCH] odbc32: SQLExecDirectW call fallback SQLExecDirect 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index e8b05a7b9ec..b792fcbe603 100644 +index 63539882a61..25a76c8d111 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -1099,6 +1099,20 @@ static SQLWCHAR *strnAtoW( const SQLCHAR *str, int len ) @@ -32,7 +32,7 @@ index e8b05a7b9ec..b792fcbe603 100644 static SQLRETURN columns_unix_a( struct statement *stmt, SQLCHAR *catalog, SQLSMALLINT len1, SQLCHAR *schema, SQLSMALLINT len2, SQLCHAR *table, SQLSMALLINT len3, SQLCHAR *column, SQLSMALLINT len4 ) -@@ -6073,10 +6087,17 @@ static SQLRETURN exec_direct_unix_w( struct statement *stmt, SQLWCHAR *text, SQL +@@ -6078,10 +6092,17 @@ static SQLRETURN exec_direct_unix_w( struct statement *stmt, SQLWCHAR *text, SQL static SQLRETURN exec_direct_win32_w( struct statement *stmt, SQLWCHAR *text, SQLINTEGER len ) { diff --git a/patches/odbc32-fixes/0022-odbc32-SQLDescribeColW-add-ascii-fallback.patch b/patches/odbc32-fixes/0012-odbc32-SQLDescribeColW-add-ANSI-fallback.patch similarity index 86% rename from patches/odbc32-fixes/0022-odbc32-SQLDescribeColW-add-ascii-fallback.patch rename to patches/odbc32-fixes/0012-odbc32-SQLDescribeColW-add-ANSI-fallback.patch index f1769a66..96335fd1 100644 --- a/patches/odbc32-fixes/0022-odbc32-SQLDescribeColW-add-ascii-fallback.patch +++ b/patches/odbc32-fixes/0012-odbc32-SQLDescribeColW-add-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From ff127c9da0bcfe90fbf2c9d6bcbd63e11366b43c Mon Sep 17 00:00:00 2001 +From c17cf464a5d168c530dacaa64d888226fbf9f8e2 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 26 Apr 2025 17:32:49 +1000 -Subject: [PATCH] odbc32: SQLDescribeColW add ascii fallback +Subject: [PATCH] odbc32: SQLDescribeColW add ANSI fallback --- dlls/odbc32/proxyodbc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index b792fcbe603..c81ab1f39d3 100644 +index 25a76c8d111..0014bb0439f 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -5975,11 +5975,21 @@ static SQLRETURN describe_col_win32_w( struct statement *stmt, SQLUSMALLINT col_ +@@ -5980,11 +5980,21 @@ static SQLRETURN describe_col_win32_w( struct statement *stmt, SQLUSMALLINT col_ SQLSMALLINT buf_len, SQLSMALLINT *name_len, SQLSMALLINT *data_type, SQLULEN *col_size, SQLSMALLINT *decimal_digits, SQLSMALLINT *nullable ) { diff --git a/patches/odbc32-fixes/0023-odbc32-SQLGetStmtAttrW-add-ascii-fallback.patch b/patches/odbc32-fixes/0013-odbc32-SQLGetStmtAttrW-add-ANSI-fallback.patch similarity index 78% rename from patches/odbc32-fixes/0023-odbc32-SQLGetStmtAttrW-add-ascii-fallback.patch rename to patches/odbc32-fixes/0013-odbc32-SQLGetStmtAttrW-add-ANSI-fallback.patch index 5a901c95..9b72139e 100644 --- a/patches/odbc32-fixes/0023-odbc32-SQLGetStmtAttrW-add-ascii-fallback.patch +++ b/patches/odbc32-fixes/0013-odbc32-SQLGetStmtAttrW-add-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From a559a392ee8ff765c9784e9fe5f05c899e38c76e Mon Sep 17 00:00:00 2001 +From ae7d0e7650782a8a577ef9130b8cb84061db7f51 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 26 Apr 2025 17:35:38 +1000 -Subject: [PATCH] odbc32: SQLGetStmtAttrW add ascii fallback +Subject: [PATCH] odbc32: SQLGetStmtAttrW add ANSI fallback --- dlls/odbc32/proxyodbc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index c81ab1f39d3..1036e6cfa96 100644 +index 0014bb0439f..ca5cd3214cd 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6709,7 +6709,8 @@ static SQLRETURN get_stmt_attr_win32_w( struct statement *stmt, SQLINTEGER attr, +@@ -6714,7 +6714,8 @@ static SQLRETURN get_stmt_attr_win32_w( struct statement *stmt, SQLINTEGER attr, { if (stmt->hdr.win32_funcs->SQLGetStmtAttrW) return stmt->hdr.win32_funcs->SQLGetStmtAttrW( stmt->hdr.win32_handle, attr, value, buflen, retlen ); diff --git a/patches/odbc32-fixes/0024-odbc32-SQLSetStmtAttrW-add-ascii-fallback.patch b/patches/odbc32-fixes/0014-odbc32-SQLSetStmtAttrW-add-ANSI-fallback.patch similarity index 81% rename from patches/odbc32-fixes/0024-odbc32-SQLSetStmtAttrW-add-ascii-fallback.patch rename to patches/odbc32-fixes/0014-odbc32-SQLSetStmtAttrW-add-ANSI-fallback.patch index bff0366f..ac7d1c5d 100644 --- a/patches/odbc32-fixes/0024-odbc32-SQLSetStmtAttrW-add-ascii-fallback.patch +++ b/patches/odbc32-fixes/0014-odbc32-SQLSetStmtAttrW-add-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From cbf28db0610f67e37193b8c7d773614a3f0674db Mon Sep 17 00:00:00 2001 +From 99f47c28203a9f80e3575fa15c424f1dee320cab Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 26 Apr 2025 17:51:54 +1000 -Subject: [PATCH] odbc32: SQLSetStmtAttrW add ascii fallback +Subject: [PATCH] odbc32: SQLSetStmtAttrW add ANSI fallback --- dlls/odbc32/proxyodbc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index e8ce1fa944c..d72c6ff4b01 100644 +index ca5cd3214cd..d8ec78d5ca7 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -8032,7 +8032,13 @@ static SQLRETURN set_stmt_attr_win32_w( struct statement *stmt, SQLINTEGER attr, +@@ -8078,7 +8078,13 @@ static SQLRETURN set_stmt_attr_win32_w( struct statement *stmt, SQLINTEGER attr, { if (stmt->hdr.win32_funcs->SQLSetStmtAttrW) return stmt->hdr.win32_funcs->SQLSetStmtAttrW( stmt->hdr.win32_handle, attr, value, len ); diff --git a/patches/odbc32-fixes/0025-odbc32-Various-ascii-fallback.patch b/patches/odbc32-fixes/0015-odbc32-Various-ANSI-fallback.patch similarity index 84% rename from patches/odbc32-fixes/0025-odbc32-Various-ascii-fallback.patch rename to patches/odbc32-fixes/0015-odbc32-Various-ANSI-fallback.patch index 87cdfd9a..255f7bef 100644 --- a/patches/odbc32-fixes/0025-odbc32-Various-ascii-fallback.patch +++ b/patches/odbc32-fixes/0015-odbc32-Various-ANSI-fallback.patch @@ -1,18 +1,18 @@ -From 74f21e527480e68e05913e5fa09fb5fa9d042e04 Mon Sep 17 00:00:00 2001 +From fc10681276f35a614958e2aae518676b30ba4d63 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Sat, 26 Apr 2025 19:18:17 +1000 -Subject: [PATCH] odbc32: Various ascii fallback +Subject: [PATCH] odbc32: Various ANSI fallback Needs spliting. --- - dlls/odbc32/proxyodbc.c | 40 +++++++++++++++++++++++++++++++++++----- - 1 file changed, 35 insertions(+), 5 deletions(-) + dlls/odbc32/proxyodbc.c | 31 +++++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index 81f5cb9a799..e965a86bf15 100644 +index d8ec78d5ca7..8a5d91fb2a9 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6411,7 +6411,13 @@ static SQLRETURN get_connect_attr_win32_w( struct connection *con, SQLINTEGER at +@@ -6416,7 +6416,13 @@ static SQLRETURN get_connect_attr_win32_w( struct connection *con, SQLINTEGER at { if (con->hdr.win32_funcs->SQLGetConnectAttrW) return con->hdr.win32_funcs->SQLGetConnectAttrW( con->hdr.win32_handle, attr, value, buflen, retlen ); @@ -27,7 +27,7 @@ index 81f5cb9a799..e965a86bf15 100644 return SQL_ERROR; } -@@ -6577,7 +6583,12 @@ static SQLRETURN get_diag_field_win32_w( SQLSMALLINT type, struct object *obj, S +@@ -6582,7 +6588,12 @@ static SQLRETURN get_diag_field_win32_w( SQLSMALLINT type, struct object *obj, S if (obj->win32_funcs->SQLGetDiagFieldW) return obj->win32_funcs->SQLGetDiagFieldW( type, obj->win32_handle, rec_num, diag_id, diag_info, buflen, retlen ); @@ -41,7 +41,7 @@ index 81f5cb9a799..e965a86bf15 100644 return SQL_ERROR; } -@@ -6780,7 +6791,13 @@ static SQLRETURN set_connect_attr_win32_w( struct connection *con, SQLINTEGER at +@@ -6785,7 +6796,13 @@ static SQLRETURN set_connect_attr_win32_w( struct connection *con, SQLINTEGER at { if (con->hdr.win32_funcs->SQLSetConnectAttrW) return con->hdr.win32_funcs->SQLSetConnectAttrW( con->hdr.win32_handle, attr, value, len ); @@ -56,7 +56,7 @@ index 81f5cb9a799..e965a86bf15 100644 else if(con->hdr.win32_funcs->SQLSetConnectOptionW) { /* ODBC v2 */ -@@ -7978,7 +8002,13 @@ static SQLRETURN set_desc_field_win32_w( struct descriptor *desc, SQLSMALLINT re +@@ -8024,7 +8041,13 @@ static SQLRETURN set_desc_field_win32_w( struct descriptor *desc, SQLSMALLINT re { if (desc->hdr.win32_funcs->SQLSetDescFieldW) return desc->hdr.win32_funcs->SQLSetDescFieldW( desc->hdr.win32_handle, record, id, value, len ); diff --git a/patches/odbc32-fixes/0026-odbc32-SQLColAttributesW-support-ascii-fallback.patch b/patches/odbc32-fixes/0016-odbc32-SQLColAttributesW-support-ANSI-fallback.patch similarity index 91% rename from patches/odbc32-fixes/0026-odbc32-SQLColAttributesW-support-ascii-fallback.patch rename to patches/odbc32-fixes/0016-odbc32-SQLColAttributesW-support-ANSI-fallback.patch index fecd4372..c18cc6f0 100644 --- a/patches/odbc32-fixes/0026-odbc32-SQLColAttributesW-support-ascii-fallback.patch +++ b/patches/odbc32-fixes/0016-odbc32-SQLColAttributesW-support-ANSI-fallback.patch @@ -1,14 +1,14 @@ -From 085539732d3dcd3aadfda4fc022de8f33be1e509 Mon Sep 17 00:00:00 2001 +From 43cae804e03b3554f1e5058264c6f16a1eaebf8b Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Mon, 28 Apr 2025 10:54:55 +1000 -Subject: [PATCH] odbc32: SQLColAttributesW support ascii fallback +Subject: [PATCH] odbc32: SQLColAttributesW support ANSI fallback --- dlls/odbc32/proxyodbc.c | 42 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index 31083792f8f..b490da9012f 100644 +index 8a5d91fb2a9..cc8a718a754 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -4636,6 +4636,10 @@ static SQLRETURN col_attributes_unix_a( struct statement *stmt, SQLUSMALLINT col @@ -22,7 +22,7 @@ index 31083792f8f..b490da9012f 100644 static SQLRETURN col_attributes_win32_a( struct statement *stmt, SQLUSMALLINT col, SQLUSMALLINT field_id, SQLPOINTER char_attrs, SQLSMALLINT buflen, SQLSMALLINT *retlen, SQLLEN *num_attrs ) -@@ -5839,11 +5843,17 @@ static SQLRETURN col_attributes_win32_w( struct statement *stmt, SQLUSMALLINT co +@@ -5844,11 +5848,17 @@ static SQLRETURN col_attributes_win32_w( struct statement *stmt, SQLUSMALLINT co SQLPOINTER char_attrs, SQLSMALLINT buflen, SQLSMALLINT *retlen, SQLLEN *num_attrs ) { @@ -41,7 +41,7 @@ index 31083792f8f..b490da9012f 100644 } /************************************************************************* -@@ -6295,8 +6305,34 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col +@@ -6300,8 +6310,34 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col if (stmt->hdr.win32_funcs->SQLColAttribute) { diff --git a/patches/odbc32-fixes/0027-odbc32-SQLColAttributeW-Add-ascii-fallback.patch b/patches/odbc32-fixes/0017-odbc32-SQLColAttributeW-Add-ANSI-fallback.patch similarity index 88% rename from patches/odbc32-fixes/0027-odbc32-SQLColAttributeW-Add-ascii-fallback.patch rename to patches/odbc32-fixes/0017-odbc32-SQLColAttributeW-Add-ANSI-fallback.patch index 5f1f7f14..211ea466 100644 --- a/patches/odbc32-fixes/0027-odbc32-SQLColAttributeW-Add-ascii-fallback.patch +++ b/patches/odbc32-fixes/0017-odbc32-SQLColAttributeW-Add-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From 9b10e9df425671cbf0811f436ccfd83e048b5cc9 Mon Sep 17 00:00:00 2001 +From 644fc34023107225a278abc7a41249c98ab1126b Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 29 Apr 2025 13:08:38 +1000 -Subject: [PATCH] odbc32: SQLColAttributeW - Add ascii fallback +Subject: [PATCH] odbc32: SQLColAttributeW - Add ANSI fallback --- dlls/odbc32/proxyodbc.c | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index b490da9012f..b17f8a46e0e 100644 +index cc8a718a754..be4908e258a 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6335,7 +6335,7 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col +@@ -6340,7 +6340,7 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col return ret; } @@ -20,7 +20,7 @@ index b490da9012f..b17f8a46e0e 100644 { if (buflen < 0) return SQL_ERROR; if (!col) -@@ -6383,8 +6383,43 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col +@@ -6388,8 +6388,43 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col FIXME( "field id %u not handled\n", field_id ); } diff --git a/patches/odbc32-fixes/0028-SQLGetDiagRecW-Add-ascii-fallback.patch b/patches/odbc32-fixes/0018-odbc32-SQLGetDiagRecW-add-ANSI-fallback.patch similarity index 85% rename from patches/odbc32-fixes/0028-SQLGetDiagRecW-Add-ascii-fallback.patch rename to patches/odbc32-fixes/0018-odbc32-SQLGetDiagRecW-add-ANSI-fallback.patch index 07d2e466..dd3077c4 100644 --- a/patches/odbc32-fixes/0028-SQLGetDiagRecW-Add-ascii-fallback.patch +++ b/patches/odbc32-fixes/0018-odbc32-SQLGetDiagRecW-add-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From 2b03235b360575563a2ffee961c9447699edce0d Mon Sep 17 00:00:00 2001 +From 1d2d97060b72cc99498fa440ae603f7db8ea74da Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 1 May 2025 07:32:58 +1000 -Subject: [PATCH] SQLGetDiagRecW: Add ascii fallback +Subject: [PATCH] odbc32: SQLGetDiagRecW add ANSI fallback. --- dlls/odbc32/proxyodbc.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index b607c361416..377124653c1 100644 +index be4908e258a..393eefc9791 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6716,8 +6716,9 @@ static SQLRETURN get_diag_rec_win32_w( SQLSMALLINT type, struct object *obj, SQL +@@ -6720,8 +6720,9 @@ static SQLRETURN get_diag_rec_win32_w( SQLSMALLINT type, struct object *obj, SQL return SQL_ERROR; } @@ -22,7 +22,7 @@ index b607c361416..377124653c1 100644 SQLHENV env = NULL; SQLHDBC con = NULL; SQLHSTMT stmt = NULL; -@@ -6742,7 +6743,27 @@ static SQLRETURN get_diag_rec_win32_w( SQLSMALLINT type, struct object *obj, SQL +@@ -6746,7 +6747,27 @@ static SQLRETURN get_diag_rec_win32_w( SQLSMALLINT type, struct object *obj, SQL return SQL_ERROR; } diff --git a/patches/odbc32-fixes/0029-odbc32-SQLNativeSqlW-add-ascii-fallback.patch b/patches/odbc32-fixes/0019-odbc32-SQLNativeSqlW-add-ANSI-fallback.patch similarity index 88% rename from patches/odbc32-fixes/0029-odbc32-SQLNativeSqlW-add-ascii-fallback.patch rename to patches/odbc32-fixes/0019-odbc32-SQLNativeSqlW-add-ANSI-fallback.patch index f44c163a..9d9703f2 100644 --- a/patches/odbc32-fixes/0029-odbc32-SQLNativeSqlW-add-ascii-fallback.patch +++ b/patches/odbc32-fixes/0019-odbc32-SQLNativeSqlW-add-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From 7f895746aa93f74933dab0f2e115c4feb2d57556 Mon Sep 17 00:00:00 2001 +From 98f3cf627bba58f36113edb678c72afe86c2ea85 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 1 May 2025 08:05:31 +1000 -Subject: [PATCH] odbc32: SQLNativeSqlW add ascii fallback +Subject: [PATCH] odbc32: SQLNativeSqlW add ANSI fallback --- dlls/odbc32/proxyodbc.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index ca2f94cb250..799ea5accf2 100644 +index 393eefc9791..9d4126112c3 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -7819,11 +7819,33 @@ static SQLRETURN native_sql_unix_w( struct connection *con, SQLWCHAR *in_stateme +@@ -7824,11 +7824,33 @@ static SQLRETURN native_sql_unix_w( struct connection *con, SQLWCHAR *in_stateme static SQLRETURN native_sql_win32_w( struct connection *con, SQLWCHAR *in_statement, SQLINTEGER len, SQLWCHAR *out_statement, SQLINTEGER buflen, SQLINTEGER *retlen ) { diff --git a/patches/odbc32-fixes/0030-odbc32-SQLPrepareW-add-ascii-fallback.patch b/patches/odbc32-fixes/0020-odbc32-SQLPrepareW-add-ANSI-fallback.patch similarity index 83% rename from patches/odbc32-fixes/0030-odbc32-SQLPrepareW-add-ascii-fallback.patch rename to patches/odbc32-fixes/0020-odbc32-SQLPrepareW-add-ANSI-fallback.patch index 3c2b5b31..53fcc5d4 100644 --- a/patches/odbc32-fixes/0030-odbc32-SQLPrepareW-add-ascii-fallback.patch +++ b/patches/odbc32-fixes/0020-odbc32-SQLPrepareW-add-ANSI-fallback.patch @@ -1,17 +1,17 @@ -From fbc17da7bbb48155d2fe1225f159a2b50b7aaf65 Mon Sep 17 00:00:00 2001 +From 55c6d603a469ec3d03b82f4b4237be769f8acae6 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 1 May 2025 08:10:04 +1000 -Subject: [PATCH] odbc32: SQLPrepareW add ascii fallback +Subject: [PATCH] odbc32: SQLPrepareW add ANSI fallback --- dlls/odbc32/proxyodbc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index 799ea5accf2..0fed17640c1 100644 +index 9d4126112c3..76c104e3a4a 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -6199,10 +6199,17 @@ static SQLRETURN prepare_unix_w( struct statement *stmt, SQLWCHAR *statement, SQ +@@ -6204,10 +6204,17 @@ static SQLRETURN prepare_unix_w( struct statement *stmt, SQLWCHAR *statement, SQ static SQLRETURN prepare_win32_w( struct statement *stmt, SQLWCHAR *statement, SQLINTEGER len ) { diff --git a/patches/odbc32-fixes/0021-odbc32-SQLColAttributesW-accept-field-id-SQL_COLUMN_.patch b/patches/odbc32-fixes/0021-odbc32-SQLColAttributesW-accept-field-id-SQL_COLUMN_.patch new file mode 100644 index 00000000..f0e9c672 --- /dev/null +++ b/patches/odbc32-fixes/0021-odbc32-SQLColAttributesW-accept-field-id-SQL_COLUMN_.patch @@ -0,0 +1,33 @@ +From f9dc463e820b2b8840ef1b98957ba6f9b67d8e32 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Mon, 5 May 2025 09:29:17 +1000 +Subject: [PATCH 1/4] odbc32: SQLColAttributesW accept field id + SQL_COLUMN_NAME. + +--- + dlls/odbc32/proxyodbc.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c +index 76c104e3a4a..ce69e3ae134 100644 +--- a/dlls/odbc32/proxyodbc.c ++++ b/dlls/odbc32/proxyodbc.c +@@ -1028,6 +1028,7 @@ static SQLRETURN col_attribute_win32_a( struct statement *stmt, SQLUSMALLINT col + field_id = SQL_COLUMN_NAME; + break; + ++ case SQL_COLUMN_NAME: + case SQL_COLUMN_TYPE: + case SQL_COLUMN_DISPLAY_SIZE: + case SQL_MAX_COLUMNS_IN_TABLE: +@@ -6386,6 +6387,7 @@ static SQLRETURN col_attribute_win32_w( struct statement *stmt, SQLUSMALLINT col + field_id = SQL_COLUMN_NAME; + break; + ++ case SQL_COLUMN_NAME: + case SQL_COLUMN_TYPE: + case SQL_COLUMN_DISPLAY_SIZE: + case SQL_MAX_COLUMNS_IN_TABLE: +-- +2.47.2 + diff --git a/patches/odbc32-fixes/0022-odbc32-SQLBindCol-remap-unicode-field-when-using-ANS.patch b/patches/odbc32-fixes/0022-odbc32-SQLBindCol-remap-unicode-field-when-using-ANS.patch new file mode 100644 index 00000000..e7545f58 --- /dev/null +++ b/patches/odbc32-fixes/0022-odbc32-SQLBindCol-remap-unicode-field-when-using-ANS.patch @@ -0,0 +1,60 @@ +From e8d33e2603801f65e1ecdba0c903207584845400 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Fri, 2 May 2025 12:13:30 +1000 +Subject: [PATCH 2/4] odbc32: SQLBindCol remap unicode field when using ANSI + driver + +--- + dlls/odbc32/proxyodbc.c | 33 +++++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c +index ce69e3ae134..07e94c80ded 100644 +--- a/dlls/odbc32/proxyodbc.c ++++ b/dlls/odbc32/proxyodbc.c +@@ -809,9 +809,42 @@ static SQLRETURN bind_col_unix( struct statement *stmt, SQLUSMALLINT column, SQL + } + } + ++static BOOL driver_ansi_only( const struct win32_funcs *funcs ) ++{ ++ BOOL ansi = !( funcs->SQLBrowseConnectW || funcs->SQLColAttributeW || funcs->SQLColAttributesW || ++ funcs->SQLColumnPrivilegesW || funcs->SQLColumnsW || funcs->SQLConnectW || ++ funcs->SQLDescribeColW || funcs->SQLDriverConnectW || funcs->SQLErrorW || ++ funcs->SQLExecDirectW || funcs->SQLGetConnectAttrW || funcs->SQLGetConnectOptionW || ++ funcs->SQLGetCursorNameW || funcs->SQLGetDescFieldW || funcs->SQLGetDescRecW || ++ funcs->SQLGetDiagFieldW || funcs->SQLGetDiagRecW || funcs->SQLGetInfoW || ++ funcs->SQLGetStmtAttrW || funcs->SQLGetTypeInfoW || funcs->SQLNativeSqlW || ++ funcs->SQLPrepareW || funcs->SQLPrimaryKeysW || funcs->SQLProceduresW || ++ funcs->SQLSetConnectAttrW || funcs->SQLSetConnectOptionW || funcs->SQLSetCursorNameW || ++ funcs->SQLSetDescFieldW || funcs->SQLSetStmtAttrW || funcs->SQLSpecialColumnsW || ++ funcs->SQLStatisticsW || funcs->SQLTablePrivilegesW || funcs->SQLTablesW ); ++ ++ return ansi; ++} ++ + static SQLRETURN bind_col_win32( struct statement *stmt, SQLUSMALLINT column, SQLSMALLINT type, SQLPOINTER value, + SQLLEN buflen, SQLLEN *retlen ) + { ++ if ( driver_ansi_only(stmt->hdr.win32_funcs) ) ++ { ++ UINT i = column - 1; ++ SQLSMALLINT orig_type = type; ++ ++ /* For ANSI Drivers we need to remap to standard char binding to stop Fetch from causing an error */ ++ if (type == SQL_C_WCHAR) ++ type = SQL_CHAR; ++ ++ if (!alloc_binding( &stmt->bind_col, SQL_PARAM_INPUT_OUTPUT, column, stmt->row_count )) ++ return SQL_ERROR; ++ ++ stmt->bind_col.param[i].col.target_type = type; ++ stmt->bind_col.param[i].col.target_value = value; ++ stmt->bind_col.param[i].col.buffer_length = orig_type; ++ } + if (stmt->hdr.win32_funcs->SQLBindCol) + return stmt->hdr.win32_funcs->SQLBindCol( stmt->hdr.win32_handle, column, type, value, buflen, retlen ); + return SQL_ERROR; +-- +2.47.2 + diff --git a/patches/odbc32-fixes/0023-odbc32-SQLFetch-convert-to-ANSI-when-required.patch b/patches/odbc32-fixes/0023-odbc32-SQLFetch-convert-to-ANSI-when-required.patch new file mode 100644 index 00000000..06a1b54b --- /dev/null +++ b/patches/odbc32-fixes/0023-odbc32-SQLFetch-convert-to-ANSI-when-required.patch @@ -0,0 +1,50 @@ +From 0f690546c57c6bc04fbbf3b16fc8842ce3a41300 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Mon, 5 May 2025 10:11:29 +1000 +Subject: [PATCH 3/4] odbc32: SQLFetch convert to ANSI when required. + +--- + dlls/odbc32/proxyodbc.c | 26 ++++++++++++++++++++++++-- + 1 file changed, 24 insertions(+), 2 deletions(-) + +diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c +index 07e94c80ded..a278212b092 100644 +--- a/dlls/odbc32/proxyodbc.c ++++ b/dlls/odbc32/proxyodbc.c +@@ -2008,9 +2008,31 @@ static SQLRETURN fetch_unix( struct statement *stmt ) + + static SQLRETURN fetch_win32( struct statement *stmt ) + { ++ SQLRETURN ret = SQL_ERROR; ++ + if (stmt->hdr.win32_funcs->SQLFetch) +- return stmt->hdr.win32_funcs->SQLFetch( stmt->hdr.win32_handle ); +- return SQL_ERROR; ++ { ++ ret = stmt->hdr.win32_funcs->SQLFetch( stmt->hdr.win32_handle ); ++ ++ if (driver_ansi_only(stmt->hdr.win32_funcs) && stmt->bind_col.param) ++ { ++ int i; ++ ++ for (i = 0; i < stmt->bind_col.count; i++) ++ { ++ /* buffer_length currently used for Original Type */ ++ if (stmt->bind_col.param[i].col.buffer_length == SQL_C_WCHAR && ++ stmt->bind_col.param[i].col.target_type != stmt->bind_col.param[i].col.buffer_length) ++ { ++ WCHAR *str = strnAtoW(stmt->bind_col.param[i].col.target_value, -1); ++ wcscpy(stmt->bind_col.param[i].col.target_value, str); ++ free(str); ++ } ++ } ++ } ++ } ++ ++ return ret; + } + + /************************************************************************* +-- +2.47.2 + diff --git a/patches/odbc32-fixes/0024-odbc32-SQLGetData-handle-ANSI-driver.patch b/patches/odbc32-fixes/0024-odbc32-SQLGetData-handle-ANSI-driver.patch new file mode 100644 index 00000000..7de848c4 --- /dev/null +++ b/patches/odbc32-fixes/0024-odbc32-SQLGetData-handle-ANSI-driver.patch @@ -0,0 +1,60 @@ +From e53a04352963f1c50cf50b2d5950762c027a5c25 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Mon, 5 May 2025 10:17:22 +1000 +Subject: [PATCH 4/4] odbc32: SQLGetData handle ANSI driver + +--- + dlls/odbc32/proxyodbc.c | 26 ++++++++++++++++++++++++-- + 1 file changed, 24 insertions(+), 2 deletions(-) + +diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c +index a278212b092..770b455ad5d 100644 +--- a/dlls/odbc32/proxyodbc.c ++++ b/dlls/odbc32/proxyodbc.c +@@ -2550,8 +2550,11 @@ static struct object *find_object_type(SQLSMALLINT type, struct object *object) + static SQLRETURN get_data_win32( struct statement *stmt, SQLUSMALLINT column, SQLSMALLINT type, SQLPOINTER value, + SQLLEN buflen, SQLLEN *retlen ) + { ++ SQLRETURN ret = SQL_ERROR; ++ + if (stmt->hdr.win32_funcs->SQLGetData) + { ++ BOOL wants_wchar = FALSE; + struct environment *env = (struct environment *)find_object_type(SQL_HANDLE_ENV, stmt->hdr.parent); + if (env && env->driver_ver == SQL_OV_ODBC2) + { +@@ -2563,10 +2566,29 @@ static SQLRETURN get_data_win32( struct statement *stmt, SQLUSMALLINT column, SQ + type = SQL_C_TIMESTAMP; + } + +- return stmt->hdr.win32_funcs->SQLGetData( stmt->hdr.win32_handle, column, type, value, buflen, retlen ); ++ if ( driver_ansi_only(stmt->hdr.win32_funcs) ) ++ { ++ if (type == SQL_C_WCHAR) ++ { ++ type = SQL_CHAR; ++ wants_wchar = TRUE; ++ } ++ } ++ ++ ret = stmt->hdr.win32_funcs->SQLGetData( stmt->hdr.win32_handle, column, type, value, buflen, retlen ); ++ ++ if (SUCCESS(ret) && wants_wchar ) ++ { ++ WCHAR *str = strnAtoW(value, -1); ++ wcscpy(value, str); ++ free(str); ++ ++ if (retlen) ++ *retlen = *retlen * sizeof(WCHAR); ++ } + } + +- return SQL_ERROR; ++ return ret; + } + + /************************************************************************* +-- +2.47.2 +