Поделиться через


Поставщик OLE DB для DB2

Поставщик Microsoft OLE DB для DB2, распространяемый вместе с сервером Microsoft Host Integration Server, позволяет распределенным запросам SQL Server обращаться к данным в базах данных DB2.

ПримечаниеПримечание

Дополнительные сведения об установке и настройке поставщика OLE DB см. в документации, которая поставляется вместе с ним.

Создание связанного сервера для доступа к базе данных DB2

  1. Установите клиентское программное обеспечение Host Integration Server на компьютере, где работает экземпляр SQL Server, и выберите параметры для установки поставщика OLE DB для DB2.

  2. Укажите строку подключения, которая требуется поставщику OLE DB для DB2 для доступа к нужному источнику данных. Проще всего это сделать, создав файл Data Link, используя приложение Host Integration Server для нового источника данных OLE DB. Дополнительные сведения см. в документации по Microsoft Host Integration Server.

  3. Чтобы создать связанный сервер, выполните процедуру sp_addlinkedserver, указав DB2OLEDB в качестве параметра provider_name, имя каталога DB2, содержащего нужные данные, в качестве параметра catalog и строку соединения из шага 2 в качестве параметра provider_string.

    Следующий пример демонстрирует использование процедуры sp_addlinkedserver для создания определения связанного сервера, который обращается к базе данных DB2:

    EXEC sp_addlinkedserver @server = 'DB2SRV',
       @srvproduct = 'Microsoft OLE DB Provider for DB2',
       @catalog = 'SEATTLE',
       @provider = 'DB2OLEDB',
       @provstr =
         'NetLib=SNA;NetAddr=;NetPort=;RemoteLU=SEATTLE;LocalLU=LOCAL;
          ModeName=QPCSUPP;InitCat=SEATTLE;
          Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES;
          IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO;
          Data Source=Seattle_WNW3XX'
    
  4. Выполните процедуру sp_addlinkedsrvlogin, чтобы создать сопоставления имен входа SQL Server с именами DB2.

    В следующем примере имя входа SQL ServerSQLJoe сопоставляется с именем входа DB2 DB2Joe:

    EXEC sp_addlinkedsrvlogin 'DB2SRV', false, 'SQLJoe', 'DB2Joe', 'x894jd03?'
    
    ПримечаниеПримечание

    Пароли передаются в незашифрованном виде. Пароли могут быть видны в определениях источника данных и сценариях, сохраненных на диске и в составе резервных копий, а также в файлах журналов. Никогда не используйте для таких соединений пароль администратора. За инструкциями по безопасности среды обратитесь к сетевому администратору.

После выполнения этих шагов связанный сервер DB2SRV можно использовать в качестве имен, состоящих из четырех частей, и linked_server в функции OPENQUERY. Например:

SELECT *
FROM DB2SRV.SEATTLE.WNW3XX.DEPARTMENT

Или

SELECT *
FROM OPENQUERY(DB2SRV, 'SELECT * FROM SEATTLE.WNW3XX.EMP_ACT')

Если распределенным запросам к источникам данных DB2 требуется сравнение со значением NULL, используйте операторы ISNULL или IS NOT NULL вместо операторов «равно» (=), «больше» (>) или «меньше» (< ). Кроме того, в инструкциях INSERT следует указывать значения для всех столбцов таблицы, даже если некоторые из них могут принимать значения NULL или имеют значения по умолчанию.