OLEDB-соединение и имена серверов возникают между 32 и 64 бит? - PullRequest
0 голосов
/ 25 марта 2020

ОБНОВЛЕНИЕ См. Конец

Хорошо, это странный вопрос, и, вероятно, он имеет простой ответ, поэтому все, что мне действительно нужно, это указатель в правильном направлении.

Мы создали 32-битное приложение, которое мы используем годами. У наших клиентов есть файл .ini, в котором мы храним имя сервера SQL, к которому нужно подключиться. Таким образом, файл .ini может содержать запись типа

server = MyLittleSqlServer \ SQLEXPRESS

Мы создаем соединение OLEDB, используя любой драйвер, доступный на P C.

Теперь мы добавили другое приложение, и оно оказалось 64-битным приложением .... И мы столкнулись с некоторыми странными проблемами.

Один или два раза мы обнаружили, что 64-битное приложение не нравится имя сервера MyLittleServer \ SQLEXPRESS ... но удаляется \ SQLEXPRESS и все нормально. И 32-битное приложение, и 64-битное приложение могут успешно подключаться, используя имя сервера без "\ SQLEXPRESS"

Но сегодня я получил еще более странное. СЕГОДНЯ 64-разрядному приложению не понравился MyLittleServer \ SQLEXPRESS, но 32-разрядному приложению не понравился MyLittleServer .... Как ни странно, я получил IP-адрес сервера (10.0.0.1) и, к счастью, оба приложения, такие как имя сервера 10.0.0.1

Но что дает? Я боюсь, что это только вопрос времени, пока я не столкнусь с ситуацией, когда я не смогу найти альтернативу, понравившуюся как 32-разрядному, так и 64-разрядному приложению. Поэтому мне нужно знать, как они продолжают «интерпретировать» имя сервера по-разному, и что я могу с этим поделать.

Приветствия

ОБНОВЛЕНИЕ

I наконец-то узнал, как это предотвратить. Если вы запустите ODBCAD («64-битные источники данных ODB C»), вы сможете go выполнить настройку нового источника данных. Важный момент - когда вы попадаете во вторую часть мастера, где есть кнопка «Конфигурация клиента». Если вы снимите флажок флажок Динамически определять порт, вы можете ввести правильный порт (обычно 1433) и продолжить.

После этого он просто заработает.

Теперь я обновляю свой вопрос. Я предполагаю, что эта информация где-то установлена ​​в реестре. Итак, мой вопрос сейчас:

Какие значения, где в Реестре, мне нужно изменить, чтобы мне не нужно - и не нужно было просить пользователя - go через этот интерфейс?

enter image description here

...