[PATCH v6 0/1] MR6063: odbc32 fixes
The function SQLBindParam was missed when binding all the available functions. Will implement the SQLBindParam in a future patchset. The other is just a fix for when parameters are NULL when passed in (Same the the W version). -- v6: odbc32: SQLError/W handle NULL handles https://gitlab.winehq.org/wine/wine/-/merge_requests/6063
From: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- dlls/odbc32/proxyodbc.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 957584af008..fb635b1d9c0 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -1182,8 +1182,16 @@ SQLRETURN WINAPI SQLError(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, S } else if ((env && env->win32_handle) || (con && con->win32_handle) || (stmt && stmt->win32_handle)) { - ret = env->win32_funcs->SQLError( env->win32_handle, con->win32_handle, stmt->win32_handle, SqlState, - NativeError, MessageText, BufferLength, TextLength ); + const struct win32_funcs *win32_funcs = NULL; + + if (env) win32_funcs = env->win32_funcs; + else if (con) win32_funcs = con->win32_funcs; + else if (stmt) win32_funcs = stmt->win32_funcs; + + ret = win32_funcs->SQLError( env ? env->win32_handle : NULL, + con ? con->win32_handle : NULL, + stmt ? stmt->win32_handle : NULL, + SqlState, NativeError, MessageText, BufferLength, TextLength ); } if (SUCCESS( ret )) @@ -3569,10 +3577,16 @@ SQLRETURN WINAPI SQLErrorW(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, } else if ((env && env->win32_handle) || (con && con->win32_handle) || (stmt && stmt->win32_handle)) { - ret = env->win32_funcs->SQLErrorW( env ? env->win32_handle : NULL, - con ? con->win32_handle : NULL, - stmt ? stmt->win32_handle : NULL, - SqlState, NativeError, MessageText, BufferLength, TextLength ); + const struct win32_funcs *win32_funcs = NULL; + + if (env) win32_funcs = env->win32_funcs; + else if (con) win32_funcs = con->win32_funcs; + else if (stmt) win32_funcs = stmt->win32_funcs; + + ret = win32_funcs->SQLErrorW( env ? env->win32_handle : NULL, + con ? con->win32_handle : NULL, + stmt ? stmt->win32_handle : NULL, + SqlState, NativeError, MessageText, BufferLength, TextLength ); } if (SUCCESS(ret )) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6063
Hans Leidekker (@hans) commented about dlls/odbc32/proxyodbc.c:
} else if ((env && env->win32_handle) || (con && con->win32_handle) || (stmt && stmt->win32_handle)) { - ret = env->win32_funcs->SQLError( env->win32_handle, con->win32_handle, stmt->win32_handle, SqlState, - NativeError, MessageText, BufferLength, TextLength ); + const struct win32_funcs *win32_funcs = NULL; + + if (env) win32_funcs = env->win32_funcs; + else if (con) win32_funcs = con->win32_funcs; + else if (stmt) win32_funcs = stmt->win32_funcs; + + ret = win32_funcs->SQLError( env ? env->win32_handle : NULL, + con ? con->win32_handle : NULL, + stmt ? stmt->win32_handle : NULL, + SqlState, NativeError, MessageText, BufferLength, TextLength );
Can you fix the indentation here and in SQLErrorW()? Otherwise this looks good. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6063#note_76310
participants (3)
-
Alistair Leslie-Hughes -
Alistair Leslie-Hughes (@alesliehughes) -
Hans Leidekker (@hans)