2015-05-19 3 views
0

Моя проблема заключается в том, что я не могу подключиться к 64-битной базе данных SQL Server Express 2008 через 32-разрядную версию Access Runtime без использования аутентификации Windows или SQL auth.SQL-ошибка SQLState 08001 из MS Access 2010 runtime 32bit

В Windows 2011 Small Business Server работает виртуальная машина с Windows 7 Prof. 32 бит. Из этой Windows я протестировал приложение Access. используя (32-битный) SQL-драйвер 11, который отлично работает.

То же приложение доступа, используемое от 64-битного клиента Windows 7 с использованием 64-битного SQL-драйвера 11, с ошибкой SQLState 08001.

Вещь, которую я не понимаю, заключается в том, что проверка соединения ODBC успешно, передача данных (UDL) прошла успешно, но не мое приложение Access. При запуске приложения первая вещь должна запускать хранимую процедуру через passtroroquery и захватывать данные с определенного tbl в SQL-базе данных. Этот SP вызывает ошибку Connection, но не ошибку времени выполнения Access (я удалил даже обработчик ошибок!).

Итак, как я могу найти причину или любую ошибку в приложении Access (если таковой имеется)?

Я беспомощный, как все, что я знаю, чтобы проверить или сделать, я уже опробовал, чтобы приложение запускалось. Поскольку я даже не могу установить SQL-драйвер 11 на 32-разрядный, это не должно быть ошибкой, связанной с драйвером.

Кто-нибудь знает тестовое приложение, где я могу не только подключать, но и извлекать данные из базы данных SQL или любые другие трюки, чтобы проверить доступ к базе данных? Спасибо, с вашей помощью!

ответ

0

Доступ обычно устанавливается как 32-разрядное приложение. Таким образом, на 64-битных компьютерах будет использоваться 32-битная подсистема. В Windows 7 все ярлыки по умолчанию для утилиты администратора источника данных ODBC приведут к ее 64-битной версии. Все, что вы видите или настраиваете, совершенно не имеет значения, поскольку ваш 32-битный доступ не увидит его.

Вам необходимо явно открыть 32-битную версию утилиты ODBC Admin и настроить там источник данных. Чтобы убедиться, что вы получите правильную версию, используйте Проводник Windows и открыть этот файл: C:\WINDOWS\syswow64\odbcad32.exe

+0

Ну, что я выяснил, между тем, что соединение не работает при попытке использовать соединение, подобное «ODBC; DSN = MyDSN; .....», но оно работает, когда я делаю подключение DNS-less, путем соединения с «ODBC; DRIVER = SQL Server Native Client 11; SErver = myServer; ....». – mak

0

Ну, что я узнал, пока что, что не удается установить соединение при попытке использовать соединение, как этот «ODBC; DSN = MyDSN ; ..... "но он работает, когда я делаю подключение DNS-less, подключившись к« ODBC; DRIVER = SQL Server Native Client 11; SErver = myServer; .... ».

Возможно, это именно то, о чем вы говорите. Когда я просто использую DSN, он принимает неверную версию.

Итак, я попробую: удалите DSN, у меня есть, откройте файл odbcad32.exe и снова создайте тот же DSN.

Если я понимаю вас правильно, то Win 7 предоставляет правильный драйвер и сохраняет его в DSN. Вызов этого DSN через Access приведет к правильным настройкам.

Дальнейшая проблема заключается в том, что мой экземпляр SSQL-сервера не находится в порту 1434, а для драйвера собственного клиента SQL Server 11 больше нет Clientconfiguartion для установки статического порта. Поэтому я нашел строковое решение для этого «MyServer \ Myinstance, 15999».

Я надеюсь, что этот параметр порта будет принят в DSN, иначе мне действительно нужно перейти на DSN-less, что более сложно из-за разных серверов для разработки и производства. Thanks yr.Ответить.

Смежные вопросы