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

Материал из Oktell
Перейти к: навигация, поиск
Строка 44: Строка 44:
  
  
Зарегистрировать прилинкованный сервер можно также динамически с помощью системных хранимых процедур sp_addlinkedserver, sp_addlinkedsrvlogin:
+
Зарегистрировать прилинкованный сервер можно также динамически с помощью системных хранимых процедур '''sp_addlinkedserver, sp_addlinkedsrvlogin:'''
  
 
   
 
   
 
+
<pre>
 
EXEC sp_addlinkedserver 'AccessSample', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',
 
EXEC sp_addlinkedserver 'AccessSample', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',
  
Строка 54: Строка 54:
 
   
 
   
  
EXEC sp_addlinkedsrvlogin 'AccessSample', false, NULL, NULL
+
EXEC sp_addlinkedsrvlogin 'AccessSample', false, NULL, NULL</pre>
  
 
   
 
   
 
 
Получить данные с подключенной БД можно используя стандартный синтаксис TSQL. При указании таблиц необходимо использовать полный путь к ним (из четырех частей, разделенных точками) с указанием сервера, схемы и таблицы. Если схема пропущена, используется схема по умолчанию (для СУБД, работающих со схемами данных). Пример запроса:
 
Получить данные с подключенной БД можно используя стандартный синтаксис TSQL. При указании таблиц необходимо использовать полный путь к ним (из четырех частей, разделенных точками) с указанием сервера, схемы и таблицы. Если схема пропущена, используется схема по умолчанию (для СУБД, работающих со схемами данных). Пример запроса:
  
 
   
 
   
 
+
<pre>
Select * From [ACCESSSAMPLE]...[Table_Users]
+
Select * From [ACCESSSAMPLE]...[Table_Users]</pre>
  
 
   
 
   
Строка 68: Строка 67:
 
   
 
   
  
Подключение файлов MS EXCEL
+
===Подключение файлов MS EXCEL===
  
 
   
 
   

Версия 13:54, 28 апреля 2011

Компонент «Запрос 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 файл с данными содержал именованные диапазоны.




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


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



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


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


1. Убедитесь, что версия клиентского программного обеспечения 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.


2. Зарегистрируйте сетевой псевдоним (SQL*Net alias) на сервере, обслуживающем SQL Server, который ссылается на подключаемую базу данных Oracle. См. документацию к Oracle.


3. Выполните sp_addlinkedserver для регистрации линкованного сервера, указав MSDAORA в качестве провайдера и зарегистрированный на шаге 2 псевдоним в качестве источника данных. Приведенный пример использует алиас, определенный как OracleDB:


EXEC sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'.


4. Используйте 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 или в службу технической поддержки.