![Что может быть причиной сообщения об ошибке «Имя источника данных не найдено» при подключении ODBC](https://rvso.com/image/568259/%D0%A7%D1%82%D0%BE%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%B1%D1%8B%D1%82%D1%8C%20%D0%BF%D1%80%D0%B8%D1%87%D0%B8%D0%BD%D0%BE%D0%B9%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BE%D0%B1%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B5%20%C2%AB%D0%98%D0%BC%D1%8F%20%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B0%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BD%D0%B5%20%D0%BD%D0%B0%D0%B9%D0%B4%D0%B5%D0%BD%D0%BE%C2%BB%20%D0%BF%D1%80%D0%B8%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B8%20ODBC.png)
Я работаю с малым бизнесом, который использует базу данных на основе Access для управления заказами на работу. Система существует уже много лет, и у них есть 6-7 ПК, использующих специальное программное обеспечение от ISV для доступа к базе данных. Доступ к базе данных осуществляется через подключение к сопоставленному диску (Z:).
Несколько месяцев назад они начали периодически получать следующую ошибку:
Имя источника данных не найдено и драйвер по умолчанию не указан
Это приводит к тому, что ISV должен подключиться к базе данных и запустить исправление, чтобы восстановить базу данных. Ошибка, которую они видят, немного более конкретна и предполагает, что формат файла поврежден. Техническая поддержка предполагает, что проблема вызвана сбоем транзакции по сети. С этой целью мы попробовали несколько вещей
- перенесена база данных на другой хост на случай возникновения проблем с исходным «серверным» ПК
- заменил сетевой коммутатор
- начал отключать клиентов от сети одного за другим, пытаясь изолировать проблемного ребенка, но безрезультатно
Пока безуспешно.
Мой вопрос(ы) - Может ли один из ПК закрывать сопоставление дисков и повреждать открытую базу данных? - Есть ли что-то новое в Windows 7, что может этому мешать? - Можете ли вы порекомендовать лучший подход к выявлению причины?
решение1
Это почти наверняка проблема 32-битного DSN против 64-битного. Чтобы использовать 32-битный DSN в 64-битной среде, перейдите наC:\Windows\SysWoW64\odbcad32.exe
Наше внутреннее приложение имеет очень похожее ограничение. Чтобы избежать этой проблемы в будущем, вам, возможно, захочется установить последнюю версиюСобственный клиент SQL Serverи развернуть как 32-битную, так и 64-битную версию DSN на каждой машине с помощью групповой политики.
решение2
Если вы подключите диск с помощью команды SUBST.exe вместо "NET USE", то в отличие от "NET USE" подключение всегда будет повторяться, когда подключенный диск потерян. Помните, что выполнение этого таким образом затрудняет отсоединение диска для человека, который не знает о команде SUBST.exe. Когда диск подключен таким образом, вы не можете просто отключить его из Windows Exploder... это не сработает.
Лично я согласен, что это проблема 64-битной версии.
Имейте в виду, что 32- и 64-битные панели управления ODBC DSN, хотя вы ожидаете, что они будут работать определенным образом, в некоторых случаях они делают наоборот. Например: при попытке добавить 64-битный «User DSN» в 64-битной системе вы можете заметить, что ваше соединение не устанавливается, но при использовании «System DSN» оно работает. Это происходит потому, что панель ODBC на самом деле генерирует «32-битный DSN» на вкладке «User» 64-битной панели управления ODBC, в то время как на вкладке «System» она сгенерирует ожидаемый 64-битный DSN. Пока вы знаете о возможности того, что панели управления не будут работать так, как ожидается, я не думаю, что какая-либо конфигурация поставит вас в тупик.