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

Материал из Oktell
Перейти к: навигация, поиск
 
(не показано 6 промежуточных версии 2 участников)
Строка 1: Строка 1:
[[Дополнительно|Наверх]]
+
[[Работа с БД Oktell|Наверх]]
  
  
Строка 17: Строка 17:
 
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.
 
Сервером MS SQL поддерживаются все распространенные форматы хранения данных. Ниже на примере базы MS ACCESS приводится процедура линковки внешнего сервера.
  
 +
 +
__TOC__
  
  
Строка 68: Строка 70:
  
  
 
+
<!--
 
===Подключение файлов MS EXCEL===
 
===Подключение файлов MS EXCEL===
  
Строка 74: Строка 76:
  
 
Регистрация прилинкованного сервера аналогична примеру с БД Access.  
 
Регистрация прилинкованного сервера аналогична примеру с БД Access.  
 +
  
 
<span style="color:red;">ВНИМАНИЕ! В графу Provider string необходимо занести значение «Excel 8.0»</span>
 
<span style="color:red;">ВНИМАНИЕ! В графу Provider string необходимо занести значение «Excel 8.0»</span>
 +
 +
[[Файл:ПодклЭкс1.PNG|center]]
 +
  
 
При использовании динамического подключения через системные хранимые процедуры:
 
При использовании динамического подключения через системные хранимые процедуры:
Строка 90: Строка 96:
  
 
Для получения данных из Excel необходимо, чтобы исходный XLS файл с данными содержал именованные диапазоны.
 
Для получения данных из Excel необходимо, чтобы исходный XLS файл с данными содержал именованные диапазоны.
 +
 +
[[Файл:ПодклЭкс2.PNG|center]]
  
  
Строка 97: Строка 105:
 
'''Пример запроса:'''
 
'''Пример запроса:'''
 
<pre>
 
<pre>
Select * From [Excel]...[Range]</pre>
+
Select * From [Excel]...[Лист1$]</pre>
 
+
  
 +
-->
  
 
===Подключение базы данных ORACLE===
 
===Подключение базы данных ORACLE===
Строка 143: Строка 151:
 
'''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 или в службу технической поддержки.