odbccp32: Correct error when driver cannot be found.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alistair Leslie-Hughes 2019-08-27 03:45:03 +00:00 committed by Alexandre Julliard
parent fc8996cc60
commit 8df456ccd4
2 changed files with 27 additions and 1 deletions

View File

@ -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;
}

View File

@ -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();
}