From: Piotr Caban <piotr@codeweavers.com> Environment attributes are handled by driver manager. --- dlls/odbc32/proxyodbc.c | 48 +++++++++----------------------------- dlls/odbc32/tests/odbc32.c | 7 ++++-- 2 files changed, 16 insertions(+), 39 deletions(-) diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 9fbe0f72d3c..695b9548dcc 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -2984,21 +2984,6 @@ SQLRETURN WINAPI SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMAL return ret; } -static SQLRETURN get_env_attr_unix( struct environment *env, SQLINTEGER attr, SQLPOINTER value, SQLINTEGER buflen, - SQLINTEGER *retlen ) -{ - struct SQLGetEnvAttr_params params = { env->hdr.unix_handle, attr, value, buflen, retlen }; - return ODBC_CALL( SQLGetEnvAttr, ¶ms ); -} - -static SQLRETURN get_env_attr_win32( struct environment *env, SQLINTEGER attr, SQLPOINTER value, SQLINTEGER buflen, - SQLINTEGER *retlen ) -{ - if (env->hdr.win32_funcs->SQLGetEnvAttr) - return env->hdr.win32_funcs->SQLGetEnvAttr( env->hdr.win32_handle, attr, value, buflen, retlen ); - return SQL_ERROR; -} - /************************************************************************* * SQLGetEnvAttr [ODBC32.037] */ @@ -3013,31 +2998,20 @@ SQLRETURN WINAPI SQLGetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, if (!env) return SQL_INVALID_HANDLE; - if (env->hdr.unix_handle) - { - ret = get_env_attr_unix( env, Attribute, Value, BufferLength, StringLength ); - } - else if (env->hdr.win32_handle) - { - ret = get_env_attr_win32( env, Attribute, Value, BufferLength, StringLength ); - } - else + switch (Attribute) { - switch (Attribute) - { - case SQL_ATTR_CONNECTION_POOLING: - *(SQLINTEGER *)Value = SQL_CP_OFF; - break; + case SQL_ATTR_CONNECTION_POOLING: + *(SQLINTEGER *)Value = SQL_CP_OFF; + break; - case SQL_ATTR_ODBC_VERSION: - *(SQLINTEGER *)Value = env->attr_version; - break; + case SQL_ATTR_ODBC_VERSION: + *(SQLINTEGER *)Value = env->attr_version; + break; - default: - FIXME( "unhandled attribute %d\n", Attribute ); - ret = SQL_ERROR; - break; - } + default: + FIXME( "unhandled attribute %d\n", Attribute ); + ret = SQL_ERROR; + break; } TRACE("Returning %d\n", ret); diff --git a/dlls/odbc32/tests/odbc32.c b/dlls/odbc32/tests/odbc32.c index 09fcf5b2d9f..3f105d22483 100644 --- a/dlls/odbc32/tests/odbc32.c +++ b/dlls/odbc32/tests/odbc32.c @@ -707,9 +707,8 @@ static void test_SQLConnect( void ) size = -1; ret = SQLGetEnvAttr( env, SQL_ATTR_ODBC_VERSION, &version, sizeof(version), &size ); ok( ret == SQL_SUCCESS, "got %d\n", ret ); - ok( version != -1, "version not set\n" ); + ok( version == SQL_OV_ODBC2, "version = %d\n", version ); ok( size == -1, "size set\n" ); - trace( "ODBC version %d\n", version ); pooling = -1; ret = SQLGetEnvAttr( env, SQL_ATTR_CONNECTION_POOLING, &pooling, sizeof(pooling), NULL ); @@ -762,6 +761,10 @@ static void test_SQLConnect( void ) ok (ret == SQL_SUCCESS, "got %d\n", ret ); if (ret == SQL_ERROR) diag( con, SQL_HANDLE_DBC ); + ret = SQLGetEnvAttr( env, SQL_ATTR_ODBC_VERSION, &version, sizeof(version), NULL ); + ok( ret == SQL_SUCCESS, "got %d\n", ret ); + ok( version == SQL_OV_ODBC2, "version = %d\n", version ); + timeout = 0xdeadbeef; SET_EXPECT( driver_SQLGetConnectAttr ); ret = SQLGetConnectAttr( con, SQL_ATTR_LOGIN_TIMEOUT, &timeout, sizeof(timeout), NULL ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10669