-- v2: odbc32: Remove debugstr_sqlulen() helper. odbc32: Remove debugstr_sqllen() helper. odbc32: Support SQLGetInfo(SQL_OJ_CAPABILITIES) in older drivers.
From: Piotr Caban piotr@codeweavers.com
--- dlls/odbc32/proxyodbc.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 4cdfe43fc2f..88eb43f5956 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -1360,19 +1360,17 @@ static SQLRETURN set_con_attr( struct connection *con, SQLINTEGER attr, SQLPOINT return ret; }
-static void prepare_con( struct connection *con ) +static SQLRETURN create_con( struct connection *con ) { + SQLRETURN ret; + + if ((ret = alloc_handle( SQL_HANDLE_DBC, con->hdr.parent, &con->hdr ))) return ret; + if (set_con_attr( con, SQL_ATTR_CONNECTION_TIMEOUT, INT_PTR(con->attr_con_timeout), 0 )) WARN( "failed to set connection timeout\n" ); if (set_con_attr( con, SQL_ATTR_LOGIN_TIMEOUT, INT_PTR(con->attr_login_timeout), 0 )) WARN( "failed to set login timeout\n" ); -}
-static SQLRETURN create_con( struct connection *con ) -{ - SQLRETURN ret; - if ((ret = alloc_handle( SQL_HANDLE_DBC, con->hdr.parent, &con->hdr ))) return ret; - prepare_con( con ); return SQL_SUCCESS; }
From: Piotr Caban piotr@codeweavers.com
--- dlls/odbc32/proxyodbc.c | 187 +++++++++++++++++++++++----------------- dlls/odbc32/unixlib.h | 1 + 2 files changed, 111 insertions(+), 77 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 88eb43f5956..9e7e8aed14e 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -40,6 +40,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(odbc);
#define ODBC_CALL( func, params ) WINE_UNIX_CALL( unix_ ## func, params )
+#define SQL_OJ_CAPABILITIES_OLD 65003 + static BOOL is_wow64, is_old_wow64;
struct win32_funcs @@ -1360,8 +1362,97 @@ static SQLRETURN set_con_attr( struct connection *con, SQLINTEGER attr, SQLPOINT return ret; }
+static SQLRETURN get_info_win32_w( struct connection *con, SQLUSMALLINT type, SQLPOINTER value, SQLSMALLINT buflen, + SQLSMALLINT *retlen ) +{ + SQLRETURN ret = SQL_ERROR; + + if (type == SQL_OJ_CAPABILITIES) + { + if (con->driver_odbc_ver < 0x300) + type = SQL_OJ_CAPABILITIES_OLD; + } + + if (con->hdr.win32_funcs->SQLGetInfoW) + return con->hdr.win32_funcs->SQLGetInfoW( con->hdr.win32_handle, type, value, buflen, retlen ); + + if (con->hdr.win32_funcs->SQLGetInfo) + { + switch (type) + { + case SQL_ACTIVE_CONNECTIONS: + case SQL_ACTIVE_STATEMENTS: + case SQL_ODBC_API_CONFORMANCE: + case SQL_CONCAT_NULL_BEHAVIOR: + case SQL_TXN_CAPABLE: + case SQL_CONVERT_FUNCTIONS: + case SQL_NUMERIC_FUNCTIONS: + case SQL_STRING_FUNCTIONS: + case SQL_SYSTEM_FUNCTIONS: + case SQL_TIMEDATE_FUNCTIONS: + case SQL_CONVERT_BIGINT: + case SQL_CONVERT_BINARY: + case SQL_CONVERT_BIT: + case SQL_CONVERT_CHAR: + case SQL_CONVERT_DATE: + case SQL_CONVERT_DECIMAL: + case SQL_CONVERT_DOUBLE: + case SQL_CONVERT_FLOAT: + case SQL_CONVERT_INTEGER: + case SQL_CONVERT_LONGVARCHAR: + case SQL_CONVERT_NUMERIC: + case SQL_CONVERT_REAL: + case SQL_CONVERT_SMALLINT: + case SQL_CONVERT_TIME: + case SQL_CONVERT_TIMESTAMP: + case SQL_CONVERT_TINYINT: + case SQL_CONVERT_VARBINARY: + case SQL_CONVERT_VARCHAR: + case SQL_CONVERT_LONGVARBINARY: + case SQL_OJ_CAPABILITIES: + case SQL_OJ_CAPABILITIES_OLD: + ret = con->hdr.win32_funcs->SQLGetInfo( con->hdr.win32_handle, type, value, buflen, retlen ); + break; + case SQL_DRIVER_NAME: + case SQL_DBMS_NAME: + case SQL_DATA_SOURCE_READ_ONLY: + case SQL_IDENTIFIER_QUOTE_CHAR: + case SQL_SEARCH_PATTERN_ESCAPE: + case SQL_EXPRESSIONS_IN_ORDERBY: + case SQL_DRIVER_ODBC_VER: + case SQL_ORDER_BY_COLUMNS_IN_SELECT: + { + SQLSMALLINT lenA; + SQLCHAR *strA; + + /* For string types sizes are in bytes. */ + + buflen /= sizeof(WCHAR); + if (!(strA = malloc(buflen))) return SQL_ERROR; + + ret = con->hdr.win32_funcs->SQLGetInfo( con->hdr.win32_handle, type, strA, buflen, &lenA ); + if (SUCCESS( ret )) + { + int len = MultiByteToWideChar( CP_ACP, 0, (const char *)strA, -1, (WCHAR *)value, buflen ); + if (retlen) *retlen = (len - 1) * sizeof(WCHAR); + } + free( strA ); + + break; + } + default: + FIXME( "Unicode to ANSI conversion not handled, for info type %u.\n", type ); + } + } + + return ret; +} + + static SQLRETURN create_con( struct connection *con ) { + WCHAR odbc_ver[6]; + SQLSMALLINT len; SQLRETURN ret;
if ((ret = alloc_handle( SQL_HANDLE_DBC, con->hdr.parent, &con->hdr ))) return ret; @@ -1371,6 +1462,19 @@ static SQLRETURN create_con( struct connection *con ) if (set_con_attr( con, SQL_ATTR_LOGIN_TIMEOUT, INT_PTR(con->attr_login_timeout), 0 )) WARN( "failed to set login timeout\n" );
+ if (con->hdr.win32_handle) + { + ret = get_info_win32_w( con, SQL_DRIVER_ODBC_VER, odbc_ver, sizeof(odbc_ver), &len ); + if (SUCCESS(ret)) + { + TRACE( "driver odbc ver: %s\n", debugstr_wn(odbc_ver, len / sizeof(WCHAR)) ); + if (len == 10 && odbc_ver[2] == '.') + { + con->driver_odbc_ver = _wtoi( odbc_ver ) << 8; + con->driver_odbc_ver += _wtoi( odbc_ver + 3 ); + } + } + } return SQL_SUCCESS; }
@@ -3009,6 +3113,12 @@ static SQLRETURN get_info_win32_a( struct connection *con, SQLUSMALLINT type, SQ SQLPOINTER buf = value; BOOL strvalue = FALSE;
+ if (type == SQL_OJ_CAPABILITIES) + { + if (con->driver_odbc_ver < 0x300) + type = SQL_OJ_CAPABILITIES_OLD; + } + if (con->hdr.win32_funcs->SQLGetInfo) return con->hdr.win32_funcs->SQLGetInfo( con->hdr.win32_handle, type, value, buflen, retlen );
@@ -7101,83 +7211,6 @@ static SQLRETURN get_info_unix_w( struct connection *con, SQLUSMALLINT type, SQL return ODBC_CALL( SQLGetInfoW, ¶ms ); }
-static SQLRETURN get_info_win32_w( struct connection *con, SQLUSMALLINT type, SQLPOINTER value, SQLSMALLINT buflen, - SQLSMALLINT *retlen ) -{ - SQLRETURN ret = SQL_ERROR; - - if (con->hdr.win32_funcs->SQLGetInfoW) - return con->hdr.win32_funcs->SQLGetInfoW( con->hdr.win32_handle, type, value, buflen, retlen ); - - if (con->hdr.win32_funcs->SQLGetInfo) - { - switch (type) - { - case SQL_ACTIVE_CONNECTIONS: - case SQL_ACTIVE_STATEMENTS: - case SQL_ODBC_API_CONFORMANCE: - case SQL_CONCAT_NULL_BEHAVIOR: - case SQL_TXN_CAPABLE: - case SQL_CONVERT_FUNCTIONS: - case SQL_NUMERIC_FUNCTIONS: - case SQL_STRING_FUNCTIONS: - case SQL_SYSTEM_FUNCTIONS: - case SQL_TIMEDATE_FUNCTIONS: - case SQL_CONVERT_BIGINT: - case SQL_CONVERT_BINARY: - case SQL_CONVERT_BIT: - case SQL_CONVERT_CHAR: - case SQL_CONVERT_DATE: - case SQL_CONVERT_DECIMAL: - case SQL_CONVERT_DOUBLE: - case SQL_CONVERT_FLOAT: - case SQL_CONVERT_INTEGER: - case SQL_CONVERT_LONGVARCHAR: - case SQL_CONVERT_NUMERIC: - case SQL_CONVERT_REAL: - case SQL_CONVERT_SMALLINT: - case SQL_CONVERT_TIME: - case SQL_CONVERT_TIMESTAMP: - case SQL_CONVERT_TINYINT: - case SQL_CONVERT_VARBINARY: - case SQL_CONVERT_VARCHAR: - case SQL_CONVERT_LONGVARBINARY: - ret = con->hdr.win32_funcs->SQLGetInfo( con->hdr.win32_handle, type, value, buflen, retlen ); - break; - case SQL_DRIVER_NAME: - case SQL_DBMS_NAME: - case SQL_DATA_SOURCE_READ_ONLY: - case SQL_IDENTIFIER_QUOTE_CHAR: - case SQL_SEARCH_PATTERN_ESCAPE: - case SQL_EXPRESSIONS_IN_ORDERBY: - case SQL_ORDER_BY_COLUMNS_IN_SELECT: - { - SQLSMALLINT lenA; - SQLCHAR *strA; - - /* For string types sizes are in bytes. */ - - buflen /= sizeof(WCHAR); - if (!(strA = malloc(buflen))) return SQL_ERROR; - - ret = con->hdr.win32_funcs->SQLGetInfo( con->hdr.win32_handle, type, strA, buflen, &lenA ); - if (SUCCESS( ret )) - { - int len = MultiByteToWideChar( CP_ACP, 0, (const char *)strA, -1, (WCHAR *)value, buflen ); - if (retlen) *retlen = (len - 1) * sizeof(WCHAR); - } - free( strA ); - - break; - } - default: - FIXME( "Unicode to ANSI conversion not handled, for info type %u.\n", type ); - } - } - - return ret; -} - /************************************************************************* * SQLGetInfoW [ODBC32.145] */ diff --git a/dlls/odbc32/unixlib.h b/dlls/odbc32/unixlib.h index c865a83711d..637d88b096f 100644 --- a/dlls/odbc32/unixlib.h +++ b/dlls/odbc32/unixlib.h @@ -210,6 +210,7 @@ struct environment struct connection { struct object hdr; + UINT32 driver_odbc_ver; /* attributes */ UINT32 attr_con_timeout; UINT32 attr_login_timeout;
From: Piotr Caban piotr@codeweavers.com
--- dlls/odbc32/proxyodbc.c | 43 ++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 26 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 9e7e8aed14e..d4e0d9b8bfd 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -756,15 +756,6 @@ SQLRETURN WINAPI SQLAllocHandleStd(SQLSMALLINT HandleType, SQLHANDLE InputHandle return ret; }
-static const char *debugstr_sqllen( SQLLEN len ) -{ -#ifdef _WIN64 - return wine_dbg_sprintf( "%Id", len ); -#else - return wine_dbg_sprintf( "%d", len ); -#endif -} - #define MAX_BINDING_PARAMS 1024 static BOOL alloc_binding( struct param_binding *binding, USHORT type, UINT column, UINT row_count ) { @@ -830,8 +821,8 @@ SQLRETURN WINAPI SQLBindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, ColumnNumber %d, TargetType %d, TargetValue %p, BufferLength %s, StrLen_or_Ind %p)\n", - StatementHandle, ColumnNumber, TargetType, TargetValue, debugstr_sqllen(BufferLength), StrLen_or_Ind); + TRACE("(StatementHandle %p, ColumnNumber %d, TargetType %d, TargetValue %p, BufferLength %Id, StrLen_or_Ind %p)\n", + StatementHandle, ColumnNumber, TargetType, TargetValue, BufferLength, StrLen_or_Ind);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -2164,8 +2155,8 @@ SQLRETURN WINAPI SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrien struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, FetchOrientation %d, FetchOffset %s)\n", StatementHandle, FetchOrientation, - debugstr_sqllen(FetchOffset)); + TRACE("(StatementHandle %p, FetchOrientation %d, FetchOffset %Id)\n", StatementHandle, FetchOrientation, + FetchOffset);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -2661,8 +2652,8 @@ SQLRETURN WINAPI SQLGetData(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, ColumnNumber %d, TargetType %d, TargetValue %p, BufferLength %s, StrLen_or_Ind %p)\n", - StatementHandle, ColumnNumber, TargetType, TargetValue, debugstr_sqllen(BufferLength), StrLen_or_Ind); + TRACE("(StatementHandle %p, ColumnNumber %d, TargetType %d, TargetValue %p, BufferLength %Id, StrLen_or_Ind %p)\n", + StatementHandle, ColumnNumber, TargetType, TargetValue, BufferLength, StrLen_or_Ind);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -3563,7 +3554,7 @@ SQLRETURN WINAPI SQLPutData(SQLHSTMT StatementHandle, SQLPOINTER Data, SQLLEN St struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, Data %p, StrLen_or_Ind %s)\n", StatementHandle, Data, debugstr_sqllen(StrLen_or_Ind)); + TRACE("(StatementHandle %p, Data %p, StrLen_or_Ind %Id)\n", StatementHandle, Data, StrLen_or_Ind);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -3619,7 +3610,7 @@ SQLRETURN WINAPI SQLRowCount(SQLHSTMT StatementHandle, SQLLEN *RowCount) ret = row_count_win32( stmt, RowCount ); }
- if (SUCCESS(ret) && RowCount) TRACE(" RowCount %s\n", debugstr_sqllen(*RowCount)); + if (SUCCESS(ret) && RowCount) TRACE(" RowCount %Id\n", *RowCount); TRACE("Returning %d\n", ret); unlock_object( &stmt->hdr ); return ret; @@ -3914,8 +3905,8 @@ SQLRETURN WINAPI SQLSetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, struct descriptor *desc = (struct descriptor *)lock_object( DescriptorHandle, SQL_HANDLE_DESC ); SQLRETURN ret = SQL_ERROR;
- TRACE("(DescriptorHandle %p, RecNumber %d, Type %d, SubType %d, Length %s, Precision %d, Scale %d, Data %p," - " StringLength %p, Indicator %p)\n", DescriptorHandle, RecNumber, Type, SubType, debugstr_sqllen(Length), + TRACE("(DescriptorHandle %p, RecNumber %d, Type %d, SubType %d, Length %Id, Precision %d, Scale %d, Data %p," + " StringLength %p, Indicator %p)\n", DescriptorHandle, RecNumber, Type, SubType, Length, Precision, Scale, Data, StringLength, Indicator);
if (!desc) return SQL_INVALID_HANDLE; @@ -5020,8 +5011,8 @@ SQLRETURN WINAPI SQLExtendedFetch(SQLHSTMT StatementHandle, SQLUSMALLINT FetchOr struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, FetchOrientation %d, FetchOffset %s, RowCount %p, RowStatusArray %p)\n", - StatementHandle, FetchOrientation, debugstr_sqllen(FetchOffset), RowCount, RowStatusArray); + TRACE("(StatementHandle %p, FetchOrientation %d, FetchOffset %Id, RowCount %p, RowStatusArray %p)\n", + StatementHandle, FetchOrientation, FetchOffset, RowCount, RowStatusArray);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -5755,9 +5746,9 @@ SQLRETURN WINAPI SQLBindParameter(SQLHSTMT StatementHandle, SQLUSMALLINT Paramet SQLRETURN ret = SQL_ERROR;
TRACE("(StatementHandle %p, ParameterNumber %d, InputOutputType %d, ValueType %d, ParameterType %d, " - "ColumnSize %s, DecimalDigits %d, ParameterValue, %p, BufferLength %s, StrLen_or_Ind %p)\n", + "ColumnSize %s, DecimalDigits %d, ParameterValue, %p, BufferLength %Id, StrLen_or_Ind %p)\n", StatementHandle, ParameterNumber, InputOutputType, ValueType, ParameterType, debugstr_sqlulen(ColumnSize), - DecimalDigits, ParameterValue, debugstr_sqllen(BufferLength), StrLen_or_Ind); + DecimalDigits, ParameterValue, BufferLength, StrLen_or_Ind);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -5915,8 +5906,8 @@ SQLRETURN WINAPI SQLSetScrollOptions(SQLHSTMT StatementHandle, SQLUSMALLINT Conc struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, Concurrency %d, KeySetSize %s, RowSetSize %d)\n", StatementHandle, - Concurrency, debugstr_sqllen(KeySetSize), RowSetSize); + TRACE("(StatementHandle %p, Concurrency %d, KeySetSize %Id, RowSetSize %d)\n", StatementHandle, + Concurrency, KeySetSize, RowSetSize);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -7323,7 +7314,7 @@ SQLRETURN WINAPI SQLSetConnectOptionW(SQLHDBC ConnectionHandle, SQLUSMALLINT Opt struct connection *con = (struct connection *)lock_object( ConnectionHandle, SQL_HANDLE_DBC ); SQLRETURN ret = SQL_ERROR;
- TRACE("(ConnectionHandle %p, Option %d, Value %s)\n", ConnectionHandle, Option, debugstr_sqllen(Value)); + TRACE("(ConnectionHandle %p, Option %d, Value %Iu)\n", ConnectionHandle, Option, Value);
if (!con) return SQL_INVALID_HANDLE;
From: Piotr Caban piotr@codeweavers.com
--- dlls/odbc32/proxyodbc.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index d4e0d9b8bfd..dbe080f424f 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -840,15 +840,6 @@ SQLRETURN WINAPI SQLBindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, return ret; }
-static const char *debugstr_sqlulen( SQLULEN len ) -{ -#ifdef _WIN64 - return wine_dbg_sprintf( "%Iu", len ); -#else - return wine_dbg_sprintf( "%u", len ); -#endif -} - /************************************************************************* * SQLBindParam [ODBC32.025] */ @@ -856,9 +847,9 @@ SQLRETURN WINAPI SQLBindParam(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNu SQLSMALLINT ParameterType, SQLULEN LengthPrecision, SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, SQLLEN *StrLen_or_Ind) { - FIXME("(StatementHandle %p, ParameterNumber %d, ValueType %d, ParameterType %d, LengthPrecision %s," + FIXME("(StatementHandle %p, ParameterNumber %d, ValueType %d, ParameterType %d, LengthPrecision %Iu," " ParameterScale %d, ParameterValue %p, StrLen_or_Ind %p) stub\n", StatementHandle, ParameterNumber, ValueType, - ParameterType, debugstr_sqlulen(LengthPrecision), ParameterScale, ParameterValue, StrLen_or_Ind); + ParameterType, LengthPrecision, ParameterScale, ParameterValue, StrLen_or_Ind); return SQL_ERROR; }
@@ -3730,7 +3721,7 @@ SQLRETURN WINAPI SQLSetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Opti struct connection *con = (struct connection *)lock_object( ConnectionHandle, SQL_HANDLE_DBC ); SQLRETURN ret = SQL_ERROR;
- TRACE("(ConnectionHandle %p, Option %d, Value %s)\n", ConnectionHandle, Option, debugstr_sqlulen(Value)); + TRACE("(ConnectionHandle %p, Option %d, Value %Iu)\n", ConnectionHandle, Option, Value);
if (!con) return SQL_INVALID_HANDLE;
@@ -4022,9 +4013,9 @@ SQLRETURN WINAPI SQLSetParam(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNum struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, ParameterNumber %d, ValueType %d, ParameterType %d, LengthPrecision %s," + TRACE("(StatementHandle %p, ParameterNumber %d, ValueType %d, ParameterType %d, LengthPrecision %Iu," " ParameterScale %d, ParameterValue %p, StrLen_or_Ind %p)\n", StatementHandle, ParameterNumber, ValueType, - ParameterType, debugstr_sqlulen(LengthPrecision), ParameterScale, ParameterValue, StrLen_or_Ind); + ParameterType, LengthPrecision, ParameterScale, ParameterValue, StrLen_or_Ind);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -4222,7 +4213,7 @@ SQLRETURN WINAPI SQLSetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, Option %d, Value %s)\n", StatementHandle, Option, debugstr_sqlulen(Value)); + TRACE("(StatementHandle %p, Option %d, Value %Iu)\n", StatementHandle, Option, Value);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -5288,7 +5279,7 @@ SQLRETURN WINAPI SQLParamOptions(SQLHSTMT StatementHandle, SQLULEN RowCount, SQL struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, RowCount %s, RowNumber %p)\n", StatementHandle, debugstr_sqlulen(RowCount), + TRACE("(StatementHandle %p, RowCount %Iu, RowNumber %p)\n", StatementHandle, RowCount, RowNumber);
if (!stmt) return SQL_INVALID_HANDLE; @@ -5533,8 +5524,8 @@ SQLRETURN WINAPI SQLSetPos(SQLHSTMT StatementHandle, SQLSETPOSIROW RowNumber, SQ struct statement *stmt = (struct statement *)lock_object( StatementHandle, SQL_HANDLE_STMT ); SQLRETURN ret = SQL_ERROR;
- TRACE("(StatementHandle %p, RowNumber %s, Operation %d, LockType %d)\n", StatementHandle, - debugstr_sqlulen(RowNumber), Operation, LockType); + TRACE("(StatementHandle %p, RowNumber %Iu, Operation %d, LockType %d)\n", StatementHandle, + RowNumber, Operation, LockType);
if (!stmt) return SQL_INVALID_HANDLE;
@@ -5746,8 +5737,8 @@ SQLRETURN WINAPI SQLBindParameter(SQLHSTMT StatementHandle, SQLUSMALLINT Paramet SQLRETURN ret = SQL_ERROR;
TRACE("(StatementHandle %p, ParameterNumber %d, InputOutputType %d, ValueType %d, ParameterType %d, " - "ColumnSize %s, DecimalDigits %d, ParameterValue, %p, BufferLength %Id, StrLen_or_Ind %p)\n", - StatementHandle, ParameterNumber, InputOutputType, ValueType, ParameterType, debugstr_sqlulen(ColumnSize), + "ColumnSize %Iu, DecimalDigits %d, ParameterValue, %p, BufferLength %Id, StrLen_or_Ind %p)\n", + StatementHandle, ParameterNumber, InputOutputType, ValueType, ParameterType, ColumnSize, DecimalDigits, ParameterValue, BufferLength, StrLen_or_Ind);
if (!stmt) return SQL_INVALID_HANDLE;
On Wed Oct 8 09:19:39 2025 +0000, Piotr Caban wrote:
changed this line in [version 2 of the diff](/wine/wine/-/merge_requests/9130/diffs?diff_id=215096&start_sha=3f96c6bd4e211a096a970c2c3a9794353c0c252e#c1c014edfd18d86b0a0236b7ba7fe8224fc30c9c_213_213)
I have renamed it to driver_odbc_ver, thank you.