Как преобразовать двоичные данные с помощью связанного сервера в DB2/AS400 в SQL Server 2012?
У нас есть два сервера баз данных, оба используют SQL Server 2012, но ОС отличается. В более старом из них используется Windows Server 2008R2 Standard, а в более новом - Windows Server 2012R2 Standard, оба варианта - x64. Другое отличие - это точный номер версии SQL Server, поэтому чем старше
- Microsoft SQL Server Management Studio 11.0.3128.0
- Компоненты доступа к данным Microsoft (MDAC) 6.1.7601.17514
- Операционная система 6.1.7601
пока новее
- Microsoft SQL Server Management Studio 11.0.5343.0
- Компоненты доступа к данным Microsoft (MDAC) 6.3.9600.17415
- Операционная система 6.3.9600
Я уже создал правильно работающий связанный сервер для получения данных из нашей базы данных DB2/AS400 на старом сервере. Я использовал Data Access Tool 4.0 для создания строки подключения и получил следующую:
Provider=DB2OLEDB;User ID=****;Initial Catalog=CAT;Network Transport Library=TCPIP;Host CCSID=37;PC Code Page=1252;Network Address=****;Network Port=446;Package Collection=DATA;Default Schema=DATA;Process Binary as Character=True;Units of Work=RUW;Default Qualifier=DATA;DBMS Platform=DB2/AS400;Use Early Metadata=False;Defer Prepare=False;DateTime As Char=False;Rowset Cache Size=0;Binary CodePage=0;Datetime As Date=False;AutoCommit=True;Database Name=TEST_DB;Authentication=Server;Decimal As Numeric=False;Derive Parameters=False;LoadBalancing=False;Persist Security Info=False;Cache Authentication=False;Connection Pooling=False;
В настоящее время я хотел бы сделать такой же связанный сервер на новом, но он не мог преобразовать двоичные данные как надлежащие.
Например данные со старого сервера по сравнению с новым:
- "" === 0x404040
- M === 0xD4
Строка подключения, используемая на новом сервере:
Provider=DB2OLEDB;User ID=****;Initial Catalog=CAT;Network Transport Library=TCPIP;Host CCSID=37;PC Code Page=1252;Network Address=****;Network Port=446;Package Collection=DATA;Default Schema=DATA;Process Binary as Character=True;Units of Work=RUW;Default Qualifier=DATA;DBMS Platform=DB2/AS400;Use Early Metadata=False;Defer Prepare=False;DateTime As Char=False;Rowset Cache Size=0;Binary CodePage=0;Datetime As Date=False;AutoCommit=True;Database Name=TEST_DB;Authentication=Server;Decimal As Numeric=False;Derive Parameters=False;LoadBalancing=False;Persist Security Info=False;Cache Authentication=False;Connection Pooling=False;
Я уже попробовал:
- Использовал Data Access Tool 4.0, потому что он уже работал в прошлом (Process Binary as Character = True)
- Использовал Data Access Tool 5.0 для большей совместимости с SQL Server 2012 (опция Process Binary не включена)
- Установленное исправление из службы поддержки MS ( https://support.microsoft.com/en-us/kb/2993741)
- Перебрал возможные настройки и перепробовал несколько комбинаций
- Сравнил уже работающий связанный сервер и недавно созданный
Пожалуйста, помогите мне, как я могу решить эту проблему!
1 ответ
Установил драйвер ODBC серии i в систему и настроил системный DSN, который должен подключаться к базе данных.