diff --git a/patches/odbc32-fixes/0008-odbc32-SQLBindParameter-handle-fallback-function.patch b/patches/odbc32-fixes/0008-odbc32-SQLBindParameter-handle-fallback-function.patch index 4f715015..f991899d 100644 --- a/patches/odbc32-fixes/0008-odbc32-SQLBindParameter-handle-fallback-function.patch +++ b/patches/odbc32-fixes/0008-odbc32-SQLBindParameter-handle-fallback-function.patch @@ -1,21 +1,23 @@ -From 1b2068b8f8adc036d0c2b9cda00c37cd55330b41 Mon Sep 17 00:00:00 2001 +From 6159b0b10211094af4f0d5b8e6bff5c589664025 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 --- - dlls/odbc32/proxyodbc.c | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) + dlls/odbc32/proxyodbc.c | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c -index 8f53fa71668..7099027c2b4 100644 +index d11b4122776..3eb53288c65 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c -@@ -5242,6 +5242,29 @@ static SQLRETURN bind_parameter_win32( struct statement *stmt, SQLUSMALLINT para - if (stmt->hdr.win32_funcs->SQLBindParameter) - return stmt->hdr.win32_funcs->SQLBindParameter( stmt->hdr.win32_handle, param, io_type, value_type, - param_type, size, digits, value, buflen, len ); -+ else if(stmt->hdr.win32_funcs->SQLBindParam) +@@ -5522,9 +5522,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 ) + { ++ struct environment *env = (struct environment *)find_object_type(SQL_HANDLE_ENV, stmt->hdr.parent); ++ ++ if (env && env->attr_version == SQL_OV_ODBC3 && env->driver_ver == SQL_OV_ODBC2) + { + /* ODBC v2 */ + /* TODO: Make function */ @@ -32,8 +34,14 @@ index 8f53fa71668..7099027c2b4 100644 + else if (param_type == SQL_DATE) + param_type = SQL_TYPE_DATE; + else if (param_type == SQL_TIMESTAMP) -+ param_type = SQL_TYPE_TIMESTAMP;;; ++ param_type = SQL_TYPE_TIMESTAMP; ++ } + + if (stmt->hdr.win32_funcs->SQLBindParameter) + return stmt->hdr.win32_funcs->SQLBindParameter( stmt->hdr.win32_handle, param, io_type, value_type, + param_type, size, digits, value, buflen, len ); ++ else if(stmt->hdr.win32_funcs->SQLBindParam) ++ { + return stmt->hdr.win32_funcs->SQLBindParam( stmt->hdr.win32_handle, param, value_type, param_type, + size, digits, value, len); + } @@ -42,5 +50,5 @@ index 8f53fa71668..7099027c2b4 100644 } -- -2.43.0 +2.47.2