From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/odbc32/proxyodbc.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 7645e0ba543..239ca0929f8 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -7248,11 +7248,28 @@ static SQLRETURN special_columns_win32_w( struct statement *stmt, SQLUSMALLINT i SQLWCHAR *schema, SQLSMALLINT len2, SQLWCHAR *table, SQLSMALLINT len3, SQLUSMALLINT scope, SQLUSMALLINT nullable ) { + SQLRETURN ret = SQL_ERROR; + if (stmt->hdr.win32_funcs->SQLSpecialColumnsW) return stmt->hdr.win32_funcs->SQLSpecialColumnsW( stmt->hdr.win32_handle, id, catalog, len1, schema, len2, table, len3, scope, nullable ); - if (stmt->hdr.win32_funcs->SQLSpecialColumns) FIXME( "Unicode to ANSI conversion not handled\n" ); - return SQL_ERROR; + if (stmt->hdr.win32_funcs->SQLSpecialColumns) + { + SQLCHAR *catalogA, *schemaA, *tableA; + + catalogA = strnWtoA( catalog, len1 ); + schemaA = strnWtoA( schema, len2 ); + tableA = strnWtoA( table, len3 ); + + ret = stmt->hdr.win32_funcs->SQLSpecialColumns( stmt->hdr.win32_handle, id, catalogA, SQL_NTS, + schemaA, SQL_NTS, tableA, SQL_NTS, scope, nullable ); + + free(catalogA); + free(schemaA); + free(tableA); + } + + return ret; }
/*************************************************************************
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/odbc32/proxyodbc.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 239ca0929f8..d65539d4239 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -7078,6 +7078,7 @@ static SQLRETURN get_info_win32_w( struct connection *con, SQLUSMALLINT type, SQ case SQL_DBMS_NAME: case SQL_DATA_SOURCE_READ_ONLY: case SQL_IDENTIFIER_QUOTE_CHAR: + case SQL_SEARCH_PATTERN_ESCAPE: { SQLSMALLINT lenA; SQLCHAR *strA;
From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/odbc32/proxyodbc.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index d65539d4239..dcb61aa3adb 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -6856,11 +6856,30 @@ static SQLRETURN columns_win32_w( struct statement *stmt, SQLWCHAR *catalog, SQL SQLSMALLINT len2, SQLWCHAR *table, SQLSMALLINT len3, SQLWCHAR *column, SQLSMALLINT len4 ) { + SQLRETURN ret = SQL_ERROR; + if (stmt->hdr.win32_funcs->SQLColumnsW) return stmt->hdr.win32_funcs->SQLColumnsW( stmt->hdr.win32_handle, catalog, len1, schema, len2, table, len3, column, len4 ); - if (stmt->hdr.win32_funcs->SQLColumns) FIXME( "Unicode to ANSI conversion not handled\n" ); - return SQL_ERROR; + if (stmt->hdr.win32_funcs->SQLColumns) + { + SQLCHAR *catalogA, *schemaA, *tableA, *columnA; + + catalogA = strnWtoA( catalog, len1 ); + schemaA = strnWtoA( schema, len2 ); + tableA = strnWtoA( table, len3 ); + columnA = strnWtoA( column, len4 ); + + ret = stmt->hdr.win32_funcs->SQLColumns( stmt->hdr.win32_handle, catalogA, SQL_NTS, schemaA, SQL_NTS, + tableA, SQL_NTS, columnA, SQL_NTS ); + + free(catalogA); + free(schemaA); + free(tableA); + free(columnA); + } + + return ret; }
/*************************************************************************