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

Материал из Oktell
Перейти к: навигация, поиск
 
(не показано 10 промежуточных версии 3 участников)
Строка 1: Строка 1:
Компонент «Запрос SQL» сценариев Oktell позволяет получить доступ к различным базам данных средствами ADO, OLE и ODBC.
+
[[Работа с БД Oktell|Наверх]]
 +
 
 +
 
 +
Компонент [[Общие_компоненты_сценариев#Запрос_SQL_в_БД|Запрос SQL]] сценариев Oktell позволяет получить доступ к различным базам данных средствами ADO, OLE и ODBC.
 +
Также настройка может производиться для [[Таблицы_абонентов|таблиц абонентов]].
  
 
Однако в некоторых случаях более широкого использования внешних БД существует процедура, упрощающая взаимодействие и настройку.
 
Однако в некоторых случаях более широкого использования внешних БД существует процедура, упрощающая взаимодействие и настройку.
Строка 13: Строка 17:
 
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.
 
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.
  
 +
 +
__TOC__
  
  
Строка 63: Строка 69:
 
Select * From [ACCESSSAMPLE]...[Table_Users]</pre>
 
Select * From [ACCESSSAMPLE]...[Table_Users]</pre>
  
 
 
 
  
 +
<!--
 
===Подключение файлов MS EXCEL===
 
===Подключение файлов MS EXCEL===
  
+
 
  
 
Регистрация прилинкованного сервера аналогична примеру с БД Access.  
 
Регистрация прилинкованного сервера аналогична примеру с БД Access.  
  
ВНИМАНИЕ! В графу Provider string необходимо занести значение «Excel 8.0»
 
  
+
<span style="color:red;">ВНИМАНИЕ! В графу Provider string необходимо занести значение «Excel 8.0»</span>
 +
 
 +
[[Файл:ПодклЭкс1.PNG|center]]
 +
 
  
 
При использовании динамического подключения через системные хранимые процедуры:
 
При использовании динамического подключения через системные хранимые процедуры:
  
+
<pre>
 
+
 
EXEC sp_addlinkedserver 'ExcelSource', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',  
 
EXEC sp_addlinkedserver 'ExcelSource', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',  
  
Строка 87: Строка 92:
 
   
 
   
  
EXEC sp_addlinkedsrvlogin 'ExcelSource', 'false', NULL, NULL
+
EXEC sp_addlinkedsrvlogin 'ExcelSource', 'false', NULL, NULL</pre>
  
 
 
 
  
 
Для получения данных из Excel необходимо, чтобы исходный XLS файл с данными содержал именованные диапазоны.
 
Для получения данных из Excel необходимо, чтобы исходный XLS файл с данными содержал именованные диапазоны.
  
+
[[Файл:ПодклЭкс2.PNG|center]]
  
  
 +
[[Файл:sql_link4.png|center|750px]]
  
 
  
Пример запроса:
+
'''Пример запроса:'''
 +
<pre>
 +
Select * From [Excel]...[Лист1$]</pre>
  
+
-->
  
Select * From [Excel]...[Range]
+
===Подключение базы данных ORACLE===
  
 
  
 
 
Подключение базы данных ORACLE
 
 
 
  
 
Провайдер данных «Microsoft OLE DB Provider for Oracle» дает возможность выполнять запросы в базы данных 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''':
  
 
+
<pre>
 
+
EXEC sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'</pre>
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:
+
  
 
   
 
   
 +
* Используйте sp_addlinkedsrvlogin, чтобы провести маппинг (назначение) логинов SQL Server в логины Oracle. Приведенный ниже пример регистрирует логин SQL Server '''Joe''' к линкованному серверу, определенному на шаге 3, используя логин и пароль к Oracle (OrclUsr и OrclPwd):
  
EXEC sp_addlinkedserver 'OrclDB', 'Oracle', 'MSDAORA', 'OracleDB'.
+
<pre>
 +
EXEC sp_addlinkedsrvlogin 'OrclDB', false, NULL, NULL</pre>
  
 
   
 
   
  
4.  Используйте sp_addlinkedsrvlogin, чтобы провести маппинг (назначение) логинов SQL Server в логины Oracle. Приведенный ниже пример регистрирует логин SQL Server Joe к линкованному серверу, определенному на шаге 3, используя логин и пароль к Oracle (OrclUsr и OrclPwd):  
+
Таблицы в линкованных базах Oracle должны указываться полным именем(из четырех частей, разделенных точками):<span style="color:turquoise;">[Имя сервера]..[Имя владельца].[Таблица].</span>Например:
  
 
   
 
   
 +
<pre>Select * From OrclDB..MARY.SALES</pre>
  
EXEC sp_addlinkedsrvlogin 'OrclDB', false, NULL, NULL
 
  
 
  
Таблицы в линкованных базах Oracle должны указываться полным именем (из четырех частей, разделенных точками): [Имя сервера]..[Имя владельца].[Таблица]. Например:
+
===Провайдеры данных OLE DB===
  
 
   
 
   
  
Select * From OrclDB..MARY.SALES
+
'''SQLOLEDB''' Используется для подключения серверов SQL Server. В качестве источника указывается сетевое имя компьютера или [имя компьютера]\[имя экземпляра].  
 
+
+
 
+
+
 
+
Провайдеры данных OLE DB
+
 
+
+
 
+
SQLOLEDB  Используется для подключения серверов SQL Server. В качестве источника указывается сетевое имя компьютера или [имя компьютера]\[имя экземпляра].  
+
  
 
    
 
    
 
+
'''MSDAORA''' Используется для подключения серверов Oracle. В качестве источника указывается псевдоним (SQL*Net alias) подключаемой БД.  
MSDAORA  Используется для подключения серверов Oracle. В качестве источника указывается псевдоним (SQL*Net alias) подключаемой БД.  
+
  
 
    
 
    
 
+
'''Microsoft.Jet.OLEDB.4.0''' Используется для подключения любых продуктов Access/Jet. В качестве источника указывается полный путь к файлу базы данных. Также используется для подключения к файлам MS Excel. В этом случае в качестве источника данных указывается полный путь к файлу, а в качестве строки подключения – «Excel 8.0».  
Microsoft.Jet.OLEDB.4.0  Используется для подключения любых продуктов Access/Jet. В качестве источника указывается полный путь к файлу базы данных. Также используется для подключения к файлам MS Excel. В этом случае в качестве источника данных указывается полный путь к файлу, а в качестве строки подключения – «Excel 8.0».  
+
  
 
    
 
    
 +
'''MSDASQL''' Используется для подключения любых продуктов через ODBC. Для идентификации сервера необходимо либо в качестве источника данных указать его DSN, либо сформировать строку подключения к источнику.
  
MSDASQL Используется для подключения любых продуктов через ODBC. Для идентификации сервера необходимо либо в качестве источника данных указать его DSN, либо сформировать строку подключения к источнику.  
+
Прилинковать SQLite к MSSQL поможет [http://community.spiceworks.com/how_to/show/2271-create-ms-sql-linked-server-to-the-spiceworks-sqlite-server следующая инструкция].
 
+
 
   
 
   
 
 
Существуют еще несколько провайдеров для узких задач и редко используемых баз данных.  
 
Существуют еще несколько провайдеров для узких задач и редко используемых баз данных.  
 
 
 
 
  
 
За более подробной справкой обращайтесь к разделу помощи MS SQL Server или в службу технической поддержки.
 
За более подробной справкой обращайтесь к разделу помощи MS SQL Server или в службу технической поддержки.

Текущая версия на 11:59, 22 декабря 2014

Наверх


Компонент Запрос 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]


Подключение базы данных 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, либо сформировать строку подключения к источнику.

Прилинковать SQLite к MSSQL поможет следующая инструкция.

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

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