From 8df456ccd4ce1c2c42e5a24c71a8c3eb7d05ff03 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 27 Aug 2019 03:45:03 +0000 Subject: [PATCH] odbccp32: Correct error when driver cannot be found. Signed-off-by: Alistair Leslie-Hughes Signed-off-by: Alexandre Julliard --- dlls/odbccp32/odbccp32.c | 2 +- dlls/odbccp32/tests/misc.c | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/dlls/odbccp32/odbccp32.c b/dlls/odbccp32/odbccp32.c index 283ed41a591..1198b487f34 100644 --- a/dlls/odbccp32/odbccp32.c +++ b/dlls/odbccp32/odbccp32.c @@ -288,7 +288,7 @@ static HMODULE load_config_driver(const WCHAR *driver) if(ret != ERROR_SUCCESS) { HeapFree(GetProcessHeap(), 0, filename); - push_error(ODBC_ERROR_INVALID_DSN, odbc_error_invalid_dsn); + push_error(ODBC_ERROR_COMPONENT_NOT_FOUND, odbc_error_component_not_found); return NULL; } diff --git a/dlls/odbccp32/tests/misc.c b/dlls/odbccp32/tests/misc.c index dc65bdf3f9a..dc2ca7ed3f4 100644 --- a/dlls/odbccp32/tests/misc.c +++ b/dlls/odbccp32/tests/misc.c @@ -741,6 +741,31 @@ static void test_SQLValidDSNW(void) ok(ret, "got %d\n", ret); } +static void test_SQLConfigDataSource(void) +{ + BOOL ret; + + ret = SQLConfigDataSource(0, ODBC_ADD_DSN, "SQL Server", "DSN=WINEMQIS\0Database=MQIS\0\0"); + ok(ret, "got %d\n", ret); + + ret = SQLConfigDataSource(0, ODBC_REMOVE_DSN, "SQL Server", "DSN=WINEMQIS\0\0"); + ok(ret, "got %d\n", ret); + + ret = SQLConfigDataSource(0, ODBC_REMOVE_DSN, "SQL Server", "DSN=WINEMQIS\0\0"); + if(!ret) + { + RETCODE ret; + DWORD err; + ret = SQLInstallerError(1, &err, NULL, 0, NULL); + ok(ret == SQL_SUCCESS_WITH_INFO, "got %d\n", ret); + todo_wine ok(err == ODBC_ERROR_INVALID_DSN, "got %u\n", err); + } + + ret = SQLConfigDataSource(0, ODBC_ADD_DSN, "ODBC driver", "DSN=ODBC data source\0\0"); + todo_wine ok(!ret, "got %d\n", ret); + todo_wine check_error(ODBC_ERROR_COMPONENT_NOT_FOUND); +} + START_TEST(misc) { test_SQLConfigMode(); @@ -754,4 +779,5 @@ START_TEST(misc) test_SQLGetInstalledDrivers(); test_SQLValidDSN(); test_SQLValidDSNW(); + test_SQLConfigDataSource(); }