Подключение внешних БД — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 17: Строка 17:
 
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.
 
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.
  
 +
 +
__TOC__
  
  

Версия 12:16, 13 сентября 2012

Наверх


Компонент Запрос SQL сценариев Oktell позволяет получить доступ к различным базам данных средствами ADO, OLE и ODBC. Также настройка может производиться для таблиц абонентов.

Однако в некоторых случаях более широкого использования внешних БД существует процедура, упрощающая взаимодействие и настройку.


Для получения общего доступа к данным, хранящимся в СУБД, отличных от MS SQL Server, можно воспользоваться стандартной операцией подключения внешних (Linked) серверов к MS SQL Server.


Процесс линковки включает следующие этапы:

  • Регистрация прилинкованного сервера на MS SQL сервере, который обслуживает БД комплекса Oktell.
  • Написание необходимых запросов в формате TSQL.

Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.



Подключение базы MS ACCESS

Регистрация в клиентском интерфейсе MS SQL Server.

  • В Enterprise Manager (далее EM) необходимо подключиться к SQL серверу, содержащему БД Oktell.
  • Открыть папку Security/Linked Servers.
  • С помощью контекстного меню папки зарегистрировать новый прилинкованный сервер.


Sql link1.png


  • В диалоговой форме на вкладке General необходимо указать
  • Название сервера.
  • Тип сервера. Для Access нужно выбрать провайдера - Microsoft Jet Ole DB Provider.
  • Источник данных: полный путь к файлу *.MDB базы данных Access.


Sql link2.png


Если сервер СУБД требует аутентификации, на вкладке Security следует назначить соответствующий вариант.

  • Если на шаге 4 все данные указаны верно, будет отображен список таблиц и представлений подключенной БД.


Sql link3.png


Зарегистрировать прилинкованный сервер можно также динамически с помощью системных хранимых процедур sp_addlinkedserver, sp_addlinkedsrvlogin:


EXEC sp_addlinkedserver 'AccessSample', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',

                  'C:\Data\db1.mdb', NULL, NULL

 

EXEC sp_addlinkedsrvlogin 'AccessSample', false, NULL, NULL


Получить данные с подключенной БД можно используя стандартный синтаксис TSQL. При указании таблиц необходимо использовать полный путь к ним (из четырех частей, разделенных точками) с указанием сервера, схемы и таблицы. Если схема пропущена, используется схема по умолчанию (для СУБД, работающих со схемами данных). Пример запроса:


Select * From [ACCESSSAMPLE]...[Table_Users]


Подключение файлов MS EXCEL

Регистрация прилинкованного сервера аналогична примеру с БД Access.

ВНИМАНИЕ! В графу Provider string необходимо занести значение «Excel 8.0»

При использовании динамического подключения через системные хранимые процедуры:

EXEC sp_addlinkedserver 'ExcelSource', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 

 'c:\MyData\DistExcl.xls', NULL, 'Excel 8.0'  

 

EXEC sp_addlinkedsrvlogin 'ExcelSource', 'false', NULL, NULL


Для получения данных из Excel необходимо, чтобы исходный XLS файл с данными содержал именованные диапазоны.


Sql link4.png


Пример запроса:

Select * From [Excel]...[Range]


Подключение базы данных ORACLE

Провайдер данных «Microsoft OLE DB Provider for Oracle» дает возможность выполнять запросы в базы данных Oracle.

  • Убедитесь, что версия клиентского программного обеспечения Oracle на сервере, обслуживающем SQL Server, не ниже требуемой провайдером. Microsoft OLE DB Provider for Oracle работает с версиями Oracle Client Software Support File версии 7.3.3.4.0 или позднее и SQL*Net версии 2.3.3.0.4.
  • Зарегистрируйте сетевой псевдоним (SQL*Net alias) на сервере, обслуживающем SQL Server, который ссылается на подключаемую базу данных Oracle. См. документацию к Oracle.
  • Выполните sp_addlinkedserver для регистрации линкованного сервера, указав MSDAORA в качестве провайдера и зарегистрированный на шаге 2 псевдоним в качестве источника данных. Приведенный пример использует алиас, определенный как OracleDB:
EXEC sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'


  • Используйте sp_addlinkedsrvlogin, чтобы провести маппинг (назначение) логинов SQL Server в логины Oracle. Приведенный ниже пример регистрирует логин SQL Server Joe к линкованному серверу, определенному на шаге 3, используя логин и пароль к Oracle (OrclUsr и OrclPwd):
EXEC sp_addlinkedsrvlogin 'OrclDB', false, NULL, NULL


Таблицы в линкованных базах Oracle должны указываться полным именем(из четырех частей, разделенных точками):[Имя сервера]..[Имя владельца].[Таблица].Например:


Select * From OrclDB..MARY.SALES


Провайдеры данных OLE DB

SQLOLEDB Используется для подключения серверов SQL Server. В качестве источника указывается сетевое имя компьютера или [имя компьютера]\[имя экземпляра].


MSDAORA Используется для подключения серверов Oracle. В качестве источника указывается псевдоним (SQL*Net alias) подключаемой БД.


Microsoft.Jet.OLEDB.4.0 Используется для подключения любых продуктов Access/Jet. В качестве источника указывается полный путь к файлу базы данных. Также используется для подключения к файлам MS Excel. В этом случае в качестве источника данных указывается полный путь к файлу, а в качестве строки подключения – «Excel 8.0».


MSDASQL Используется для подключения любых продуктов через ODBC. Для идентификации сервера необходимо либо в качестве источника данных указать его DSN, либо сформировать строку подключения к источнику.


Существуют еще несколько провайдеров для узких задач и редко используемых баз данных.

За более подробной справкой обращайтесь к разделу помощи MS SQL Server или в службу технической поддержки.