ODBC-соединение от 64-разрядного SQL Server до источника данных Informix

Я пытаюсь создать связанную таблицу в 64-разрядном SQL Server для Informix, а SQL-сервер не отображает Informix ODBC в списке DSN. Однако я загрузил 64-битный SDK Informix Client, несмотря на то, что он указывает 64-битный SDK Informix Client, он появляется только в 32-битном ODBC DSN. Я попытался создать связанную таблицу в 32-разрядном SQL Server, и тогда я смог увидеть DDN Informix ODBC.

Мне просто интересно, что если есть SDK Informix Client, который будет отображаться в DSN 64-ODBC, а не 32-битный?

Также есть способ связывания 64-разрядного SQL Server с Informix, пожалуйста? Спасибо.

+3
02 июл. '14 в 11:43
источник поделиться
4 ответа

Создать ссылку на БД в SQL Server для Informix

Я использовал следующую среду программного обеспечения:

  • SQL Server 2012
  • Informix SDK 4.10 FC2
  • Informix 11.5

Сначала установите некоторые свойства для драйвера Ifxoledbc:

Set IFX Oledbc Properties

Set IFX Oledbc Properties

Затем создайте связанный сервер:

Create New Linked Server

Общие настройки - Datasource - это ваша БД и имя вашего сервера

Set General Information

Настройки безопасности - добавление действительных учетных данных базы данных Informix

Security Settings

Параметры сервера - установите RPC и RPC на True

Server Options

Я использую ссылку db для вызова хранимой процедуры в Informix и записи данных на SQL Server.

+3
04 июл. '14 в 8:14
источник

Использовали ли вы 64-разрядную версию ODBCAD32.EXE для создания DSN?

Существуют две версии администратора ODBC.

Это 32-разрядная версия:

C:\Windows\SysWOW64\odbcad32.exe

Он может видеть только 32-битные драйверы, и только 32-битные процессы могут видеть его

Это 64-разрядная версия:

C:\Windows\System32\odbcad32.exe

Он может видеть только 64-битные драйверы, и только 64-битные процессы (например, SQL Server 64 бит) могут видеть его

Еще лучше вы можете определить соединение без DNS, которое не использует DSN, оно напрямую использует драйвер. Тогда вы можете избежать этого запутанного шага в целом.

+1
04 июл. '14 в 8:42
источник

Мне удалось установить связанный сервер без ifxoledbc. Как только мой системный DSN для 64-разрядного драйвера ODBC был настроен (и протестирован OK), я настроил связанный сервер с помощью поставщика OLE DB для ODBC-драйверов Microsoft.

Связанный сервер: UCCX
Поставщик: поставщик Microsoft OLE DB для драйверов ODBC
Название продукта: драйвер IBM Informix ODBC (возможно, это может быть что угодно, но я назвал его так же, как и драйвер ODBC, и он работал).
Источник данных: UCCX (имя вашего системного DSN).

На вкладке безопасности я сопоставил локальный логин с тем же удаленным пользователем/паролем, который был установлен в самом системном DSN.

И еще один способ использования системного DSN - через OPENROWSET. Это работает даже без настройки связанного сервера:

select *
from    openrowset('MSDASQL', 'DSN=UCCX', '
            select * from ContactCallDetail
            where   StartDateTime >= ''2017-03-10 00:00:00''
            and     StartDateTime < ''2017-04-10 00:00:00''
            limit 10'
        ) p
0
24 мар. '17 в 14:47
источник

Я бы использовал функцию Comment, но у меня недостаточно "очков репутации", чтобы сделать это.

Ответ SGeis, выше, на деньги. Мне было трудно найти такой ясный, прямой ответ. Снимки диалоговых окон очень помогают.

Позвольте мне добавить к его ответу следующее:

  • Заполнение источника данных (YourDatabaseName @YourInformixServerName) может быть чем-то простым, чем Fred @Barney, а не тем, что я пытался, а именно Fred@199.188.77.66 или Fred@199.188.77.66: 32002 ( последний указывает номер порта/службы).

  • После создания связанного сервера, если вы вернетесь на страницу "Общие свойства", вы увидите, что вы не можете редактировать то, что вы набрали для Linked Server, Product Name (Почему это не называется "Имя поставщика", "так как Ifxoledbc указан в Linked Servers/Providers в дереве обозревателя объектов?), источнике данных и т.д. Таким образом, если ваше соединение терпит неудачу, потому что вы что-то угадали, неясно, как его исправить.

Вот что вы можете сделать:

  • Щелкните правой кнопкой мыши связанный сервер.

  • Под "Test Connection" найдите "Script Linked Server as."

  • Нажмите последнее, а затем выполните следующие действия: "DROP AND CREATE To" и "Окно редактора новых запросов".

  • В появившемся script тексте введите информацию о замене для тех настроек, которые были недоступны и недоступны.

  • Нажмите F5 для запуска script и тем самым примените ваши изменения. При этом существующий связанный сервер отбрасывается, и создается новый.

  • Откройте страницу свойств связанных серверов и заново введите пароль для подключения (хотя в соответствующей записи могут появляться звездочки, указывающие на то, что пароль заполнен и исправлен). Также просмотрите страницу "Общие свойства". Убедитесь, что ваши изменения застряли. Несмотря на то, что вы запустили script и не получили никаких ошибок, SQL Server будет заполнять заполняющие надстройки, такие как "Связанный сервер", "Название продукта" и "Источник данных", если, например, вы, как и я, аневризм мозга и выбрал неправильный раскрывающийся элемент для "Поставщика".

  • Как указано выше, нажмите "Проверить соединение", чтобы убедиться, что ваши изменения работают.

0
03 мар. '16 в 14:30
источник

Посмотрите другие вопросы по меткам или Задайте вопрос