Строка подключения ODBC не работает на Windows 7 - PullRequest
3 голосов
/ 30 марта 2011

Я использую соединение ODBC для моего приложения (controlpanel -> administratortools -> odbc -> DSN) к серверу SQL Server 2008 и аутентификации Windows отлично работает на Windows XP,

но теперь я запускаю его на windows7 и sql server 2008 с аутентификацией sql server. когда я создаю DSN и запрашиваю соединение, все в порядке, и я получаю это сообщение (ИСПЫТАНИЯ ЗАВЕРШЕНО УСПЕШНО!)

но при запуске приложения я получил эту ошибку

(ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''. ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''.)

Что-то не так с DSN, но я не знаю, что это такое,

возможно сделать DSN разным в windows 7 ????

большое спасибо

Я подумал немного больше и обнаружил, что, может быть, мой пароль не сохраняется для моего пользователя, когда я делаю этот DSN?

Как я могу сохранить его ???

Ответы [ 4 ]

2 голосов
/ 30 марта 2011

Разве это не 64-битное Win7 и 32-битное приложение?

Если это так, вы должны настроить ODBC DSN в 32-битной подсистеме Windows.Существует 2 версии odbcad32.exe в 64-битных версиях Windows.В c:\windows\system32 вы найдете 64-битную конфигурацию ODBC для 64-битных приложений, а в c:\windows\syswow64 есть 32-битная версия, которую следует использовать для настройки ODBC для 32-битных программ.

0 голосов
/ 30 июля 2011

Я только что портировал приложение vb6, которое использовало классический ado и DSN, чтобы получить данные sql на Win Server 2008 R2 и Sql Server 2008 R2. Ниже приведены две ссылки, чтобы проверить, когда у вас есть эта проблема. По сути, вы запускаете тест UDL, который подключается к вашим драйверам oledb, которые установлены в ОС, и дает вам представление, действительно ли вы можете получить доступ к базе данных через драйвер. Прекрасной частью этого является то, что файл «UDL», который вы создаете в этих ссылках, будет содержать для вас точную строку подключения, необходимую для обновления вашего приложения. Вы можете скопировать эту строку подключения вместо старой и отказаться от установки нового DSN на машине.

x64 UDL Test

x86 UDL Test

Из того, что я вижу, драйверам oledb теперь требуются переменные уровня провайдера и совместимости данных, заданные в строке соединения, в дополнение к другим свойствам.

Действительно заставляет вас ценить класс sqlClient. Ха.

0 голосов
/ 30 марта 2011

Обычно для подключения ODBC с помощью SQLConnect () требуется строка подключения, имя пользователя и пароль. Имя пользователя и пароль в панели администрирования используются только для проверки соединения, и каждое приложение должно указывать имя пользователя и пароль. В некоторых средах имя пользователя и пароль находятся в строке подключения. Например, я использую модуль Python odbc, где соединение выполняется с одним параметром: http://docs.activestate.com/activepython/2.6/pywin32/odbc__odbc_meth.html

conn = odbc.odbc('dsn_alias/user/password')

Подробнее о строке подключения к SQL Server 2008 вы можете прочитать здесь: http://connectionstrings.com/sql-server-2008

0 голосов
/ 30 марта 2011

Я узнал

Я делаю свой DSN как раньше. но когда я хочу использовать его в своем приложении (подключение к серверу SQL с аутентификацией SQL), я должен передать (идентификатор пользователя и пароль, как показано ниже)

Dim con As New Odbc.OdbcConnection ("dsn = dsnName; UID = sa; PWD = 123")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...