Я использую базу данных CD класса MFC. Чтобы установить соединение с SQL Server, я вызываю OpenEx () со строкой соединения. Моя проблема заключается в том, что объект не может интерпретировать часть строки DSN. Строка подключения выглядит следующим образом:
ODBC;DSN=mySystemDSN;UID=myUsername;WSID=myMachineName;DATABASE=myDatabaseName;Trusted_Connection=Yes
Это должно быть правильно, потому что я получил его, используя OpenEx (NULL), выбирая источник данных вручную, а затем вызывая GetConnect ().
Но эта строка, похоже, не содержит достаточно информации: OpenEx () всегда выскакивает диалог, запрашивая больше. Кажется, не имеет значения, что я выбираю из этого диалога - я могу выбрать DSN, связанный с совершенно другой базой данных, и все еще работает (вызов GetConnect () в этой ситуации показывает, что он использует мою строку подключения, кроме DSN часть, заимствованная из другого источника данных).
Мне нужно, чтобы мое приложение могло автоматически подключаться к базе данных - диалоговые окна нарушают правила. Я пробовал подключение без DSN с похожими результатами. Что здесь происходит, и что я могу с этим поделать?
изменить в ответ на вопрос Нила Баттерворта:
Информация, которую я предоставил при создании DSN в Администраторе источника данных ODBC, была следующей:
драйвер: SQL Server
имя: mySystemDSN
сервер: myMachineName
тип аутентификации (может быть Windows или SQL Server): Windows
флажок «Подключиться к SQL Server для получения настроек по умолчанию для дополнительных параметров конфигурации»: отмечен
флажок «Изменить базу данных по умолчанию»: отмечен галочкой и выбрано myDatabaseName из выпадающего меню
флажок «Использовать идентификаторы в кавычках ANSI»: отмечен
флажок «Использовать пустые значения, отступы и предупреждения ANSI»: отмечен
флажок «Выполнять перевод для символьных данных»: отмечен