From: Bruno Jesus <00cpxxx@gmail.com> Subject: odbc32: Improve some tracing Message-Id: Date: Fri, 13 Jan 2017 11:24:48 -0200 Was useful while testing bug https://bugs.winehq.org/show_bug.cgi?id=42178 Most important changes: Display the library opened: trace:odbc:ODBC_LoadDriverManager Opened library libodbc.so.2 Improve SQLError output to make better logs trace:odbc:SQLError (EnvironmentHandle 0x7d147d88, ConnectionHandle 0x7d148368, StatementHandle (nil), BufferLength 511) trace:odbc:SQLError SQLState "IM002", Error 0, Text "[unixODBC][Driver Manager]Data source name not found, and no default driver specified", Textlen 85 Trace connection string: trace:odbc:SQLDriverConnect (ConnectionString "DSN=MTAE;DBQ=C:\\WINM\\dossier\\expert.mdb;DefaultDir=C:\\WINM\\dossier;PWD=filousuite;", Length -3) trace:odbc:SQLDriverConnect Returns -1 Signed-off-by: Bruno Jesus <00cpxxx@gmail.com> diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index aca0792..cbe5ff4 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -505,8 +505,6 @@ static BOOL ODBC_LoadDriverManager(void) const char *s = getenv("LIB_ODBC_DRIVER_MANAGER"); char error[256]; - TRACE("\n"); - #ifdef SONAME_LIBODBC if (!s || !s[0]) s = SONAME_LIBODBC; #endif @@ -516,6 +514,7 @@ static BOOL ODBC_LoadDriverManager(void) if (dmHandle != NULL) { + TRACE("Opened library %s\n", s); nErrorType = ERROR_FREE; return TRUE; } @@ -675,7 +674,7 @@ static BOOL ODBC_LoadDMFunctions(void) SQLRETURN WINAPI SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC *ConnectionHandle) { SQLRETURN ret; - TRACE("Env=%p\n",EnvironmentHandle); + TRACE("(EnvironmentHandle %p)\n",EnvironmentHandle); if (!pSQLAllocConnect) { @@ -685,7 +684,7 @@ SQLRETURN WINAPI SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC *ConnectionH } ret = pSQLAllocConnect(EnvironmentHandle, ConnectionHandle); - TRACE("Returns ret=%d, Handle %p\n",ret, *ConnectionHandle); + TRACE("Returns %d, Handle %p\n", ret, *ConnectionHandle); return ret; } @@ -706,7 +705,7 @@ SQLRETURN WINAPI SQLAllocEnv(SQLHENV *EnvironmentHandle) } ret = pSQLAllocEnv(EnvironmentHandle); - TRACE("Returns ret=%d, Env=%p\n",ret, *EnvironmentHandle); + TRACE("Returns %d, EnvironmentHandle %p\n", ret, *EnvironmentHandle); return ret; } @@ -717,7 +716,7 @@ SQLRETURN WINAPI SQLAllocEnv(SQLHENV *EnvironmentHandle) SQLRETURN WINAPI SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) { SQLRETURN ret; - TRACE("(Type=%d, Handle=%p)\n",HandleType,InputHandle); + TRACE("(Type %d, Handle %p)\n", HandleType, InputHandle); if (!pSQLAllocHandle) { @@ -738,7 +737,7 @@ SQLRETURN WINAPI SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, S } ret = pSQLAllocHandle(HandleType, InputHandle, OutputHandle); - TRACE("Returns ret=%d, Handle=%p\n",ret, *OutputHandle); + TRACE("Returns %d, Handle %p\n", ret, *OutputHandle); return ret; } @@ -750,7 +749,7 @@ SQLRETURN WINAPI SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT *StatementHandl { SQLRETURN ret; - TRACE("(Connection=%p)\n",ConnectionHandle); + TRACE("(Connection %p)\n", ConnectionHandle); if (!pSQLAllocStmt) { @@ -760,7 +759,7 @@ SQLRETURN WINAPI SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT *StatementHandl } ret = pSQLAllocStmt(ConnectionHandle, StatementHandle); - TRACE ("Returns ret=%d, Handle=%p\n", ret, *StatementHandle); + TRACE ("Returns %d, Handle %p\n", ret, *StatementHandle); return ret; } @@ -851,12 +850,12 @@ SQLRETURN WINAPI SQLCancel(SQLHSTMT StatementHandle) SQLRETURN WINAPI SQLCloseCursor(SQLHSTMT StatementHandle) { SQLRETURN ret; - TRACE("(Handle=%p)\n",StatementHandle); + TRACE("(Handle %p)\n", StatementHandle); if (!pSQLCloseCursor) return SQL_ERROR; ret = pSQLCloseCursor(StatementHandle); - TRACE("returns %d\n",ret); + TRACE("Returns %d\n", ret); return ret; } @@ -910,7 +909,7 @@ SQLRETURN WINAPI SQLConnect(SQLHDBC ConnectionHandle, ret = pSQLConnect(ConnectionHandle, ServerName, NameLength1, UserName, NameLength2, Authentication, NameLength3); - TRACE("returns %d\n",ret); + TRACE("Returns %d\n", ret); return ret; } @@ -938,7 +937,7 @@ SQLRETURN WINAPI SQLDataSources(SQLHENV EnvironmentHandle, { SQLRETURN ret; - TRACE("EnvironmentHandle = %p\n", EnvironmentHandle); + TRACE("(EnvironmentHandle %p)\n", EnvironmentHandle); if (!pSQLDataSources) return SQL_ERROR; @@ -947,7 +946,7 @@ SQLRETURN WINAPI SQLDataSources(SQLHENV EnvironmentHandle, if (TRACE_ON(odbc)) { - TRACE("returns: %d \t", ret); + TRACE("Returns %d \t", ret); if (NameLength1 && *NameLength1 > 0) TRACE("DataSource = %s,", ServerName); if (NameLength2 && *NameLength2 > 0) @@ -974,7 +973,7 @@ SQLRETURN WINAPI SQLDataSourcesA(SQLHENV EnvironmentHandle, BufferLength1, NameLength1, Description, BufferLength2, NameLength2); if (TRACE_ON(odbc)) { - TRACE("returns: %d \t", ret); + TRACE("Returns %d \t", ret); if (NameLength1 && *NameLength1 > 0) TRACE("DataSource = %s,", ServerName); if (NameLength2 && *NameLength2 > 0) @@ -1008,12 +1007,12 @@ SQLRETURN WINAPI SQLDescribeCol(SQLHSTMT StatementHandle, SQLRETURN WINAPI SQLDisconnect(SQLHDBC ConnectionHandle) { SQLRETURN ret; - TRACE("(Handle=%p)\n", ConnectionHandle); + TRACE("(Handle %p)\n", ConnectionHandle); if (!pSQLDisconnect) return SQL_ERROR; ret = pSQLDisconnect(ConnectionHandle); - TRACE("returns %d\n",ret); + TRACE("Returns %d\n", ret); return ret; } @@ -1039,11 +1038,21 @@ SQLRETURN WINAPI SQLError(SQLHENV EnvironmentHandle, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) { - TRACE("\n"); + SQLRETURN ret; + + TRACE("(EnvironmentHandle %p, ConnectionHandle %p, StatementHandle %p, BufferLength %d)\n", + EnvironmentHandle, ConnectionHandle, StatementHandle, BufferLength); if (!pSQLError) return SQL_ERROR; - return pSQLError(EnvironmentHandle, ConnectionHandle, StatementHandle, - Sqlstate, NativeError, MessageText, BufferLength, TextLength); + ret = pSQLError(EnvironmentHandle, ConnectionHandle, StatementHandle, + Sqlstate, NativeError, MessageText, BufferLength, TextLength); + if (ret == SQL_SUCCESS) + TRACE("SQLState %s, Error %d, Text %s, Textlen %d\n", + debugstr_an((char *)Sqlstate, 5), *NativeError, + debugstr_an((char *)MessageText, *TextLength), *TextLength); + else + TRACE("Returns %d\n", ret); + return ret; } @@ -1101,12 +1110,12 @@ SQLRETURN WINAPI SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrien SQLRETURN WINAPI SQLFreeConnect(SQLHDBC ConnectionHandle) { SQLRETURN ret; - TRACE("(Handle=%p)\n",ConnectionHandle); + TRACE("(Handle %p)\n", ConnectionHandle); if (!pSQLFreeConnect) return SQL_ERROR; ret = pSQLFreeConnect(ConnectionHandle); - TRACE("Returns %d\n",ret); + TRACE("Returns %d\n", ret); return ret; } @@ -1117,12 +1126,12 @@ SQLRETURN WINAPI SQLFreeConnect(SQLHDBC ConnectionHandle) SQLRETURN WINAPI SQLFreeEnv(SQLHENV EnvironmentHandle) { SQLRETURN ret; - TRACE("(Env=%p)\n",EnvironmentHandle); + TRACE("(EnvironmentHandle %p)\n",EnvironmentHandle); if (!pSQLFreeEnv) return SQL_ERROR; ret = pSQLFreeEnv(EnvironmentHandle); - TRACE("Returns %d\n",ret); + TRACE("Returns %d\n", ret); return ret; } @@ -1133,12 +1142,12 @@ SQLRETURN WINAPI SQLFreeEnv(SQLHENV EnvironmentHandle) SQLRETURN WINAPI SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) { SQLRETURN ret; - TRACE("(Type=%d, Handle=%p)\n",HandleType,Handle); + TRACE("(Type %d, Handle %p)\n", HandleType, Handle); if (!pSQLFreeHandle) return SQL_ERROR; ret = pSQLFreeHandle(HandleType, Handle); - TRACE ("Returns %d\n",ret); + TRACE ("Returns %d\n", ret); return ret; } @@ -1149,12 +1158,12 @@ SQLRETURN WINAPI SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) SQLRETURN WINAPI SQLFreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option) { SQLRETURN ret; - TRACE("(Handle %p, Option=%d)\n",StatementHandle, Option); + TRACE("(Handle %p, Option %d)\n", StatementHandle, Option); if (!pSQLFreeStmt) return SQL_ERROR; ret = pSQLFreeStmt(StatementHandle, Option); - TRACE("Returns %d\n",ret); + TRACE("Returns %d\n", ret); return ret; } @@ -1917,7 +1926,7 @@ SQLRETURN WINAPI SQLDrivers( { SQLRETURN ret; - TRACE("direction=%d\n", fDirection); + TRACE("(Direction %d)\n", fDirection); if (!pSQLDrivers) return SQL_ERROR; ret = pSQLDrivers(henv, fDirection, szDriverDesc, cbDriverDescMax, pcbDriverDesc, @@ -1967,11 +1976,16 @@ SQLRETURN WINAPI SQLDriverConnect( SQLSMALLINT *ptr_conn_str_out, SQLUSMALLINT driver_completion ) { - TRACE("\n"); + SQLRETURN ret; + + TRACE("(ConnectionString %s, Length %d)\n", + debugstr_a((char *)conn_str_in), len_conn_str_in); if (!pSQLDriverConnect) return SQL_ERROR; - return pSQLDriverConnect(hdbc, hwnd, conn_str_in, len_conn_str_in, conn_str_out, + ret = pSQLDriverConnect(hdbc, hwnd, conn_str_in, len_conn_str_in, conn_str_out, conn_str_out_max, ptr_conn_str_out, driver_completion); + TRACE("Returns %d\n", ret); + return ret; } @@ -2070,7 +2084,7 @@ SQLRETURN WINAPI SQLConnectW(SQLHDBC ConnectionHandle, ret = pSQLConnectW(ConnectionHandle, ServerName, NameLength1, UserName, NameLength2, Authentication, NameLength3); - TRACE("returns %d\n",ret); + TRACE("Returns %d\n", ret); return ret; } @@ -2344,7 +2358,8 @@ SQLRETURN WINAPI SQLDriverConnectW( SQLSMALLINT *ptr_conn_str_out, SQLUSMALLINT driver_completion ) { - TRACE("ConnStrIn (%d bytes) --> %s\n", len_conn_str_in, debugstr_w(conn_str_in)); + TRACE("(ConnectionString %s, Length %d)\n", + debugstr_w(conn_str_in), len_conn_str_in); if (!pSQLDriverConnectW) return SQL_ERROR; return pSQLDriverConnectW(hdbc, hwnd, conn_str_in, len_conn_str_in, conn_str_out, @@ -2511,7 +2526,7 @@ SQLRETURN WINAPI SQLDataSourcesW(SQLHENV EnvironmentHandle, if (TRACE_ON(odbc)) { - TRACE("returns: %d \t", ret); + TRACE("Returns %d \t", ret); if (*NameLength1 > 0) TRACE("DataSource = %s,", debugstr_w(ServerName)); if (*NameLength2 > 0) @@ -2658,7 +2673,7 @@ SQLRETURN WINAPI SQLDriversW( { SQLRETURN ret; - TRACE("direction=%d\n", fDirection); + TRACE("(Direction %d)\n", fDirection); if (!pSQLDriversW) return SQL_ERROR; ret = pSQLDriversW(henv, fDirection, szDriverDesc, cbDriverDescMax, pcbDriverDesc,