SQL запрос
Компонент "SQL запрос" предназначен для осуществления SQL-запросов как во внутреннюю базу данных «Infinity Call-центр X», так и во внешние СУБД посредством технологии ADO/ODBC.
Все внешние базы данных к которым необходим доступ из сценариев и из других служб «Infinity Call-центр X» описываются в разделе "Базы данных" администрирования комплекса.
! |
Примеры подключения баз данных приведены в разделе "Интеграция / Интеграция с базами данных" настоящей документации. |
Свойства компонента:
Компонент "SQL запрос" относится к компонентам с непостоянным количеством наборов параметров. Часть параметров статические – указание на базу данных, тело запроса, таймаут, а часть параметров динамические и изменяются в зависимости от параметров самого запроса. К динамическим параметрам относятся параметры, которые используются в самом запросе – это входные переменные для запроса и выходные переменные.
Статические параметры:
- База данных - указание конкретной базы данных из перечня описанных в «Infinity Call-центр X» баз данных, выбирается из выпадающего списка;
! |
При описании базы данных указывается механизм доступа и параметры учетной записи от имени которой происходит доступ. |
- SQL Запрос – тело SQL запроса к базе данных;
! |
1. Входные параметры запроса (переменные), которые должны быть переданы в тело запроса, обозначаются знаком двоеточия в начале. Например: в запросе "Sel ect MyA, MyB fr om MyTable where MyC=:VarC" используется переменная "VarC", которая будет являться входным параметром к запросу. Все выходными параметрами запроса будут MyA и MyB. |
- Таймаут (сек) – Интервал в времени в секундах в течении которого ожидается ответ на запрос. Задается через редактор выражений и может быть указано явно как константа или задано числовой переменной;
Если таймаут установлен в 0, то выполнение запроса будет длится до тех пор, пока не будет получен ответ от СУБД.
Динамические параметры:
Рассмотрим использование динамических параметров на примере запроса во внешнюю базу данных. Рассмотрим простейший SQL запрос во внешнюю базу данных, которая определена в «Infinity Call-центр X» как "Client_DB_MSSQL", выбирающий строку из таблицы tbClients запросом:
SELECT [id],[cName],[cManager],[cPhone],[cManagerPhone],[cManagerMobile],[cCategory]
FROM [Client_DB].[dbo].[tbClients] where [cPhone] = :phone
В запрос возвращает 7 параметров [id],[cName],[cManager],[cPhone],[cManagerPhone],[cManagerMobile],[cCategory] из таблицы для которых поле [cPhone] совпадает с параметром запроса :phone.
При проверке запроса в конструкторе в компоненте "SQL запрос" автоматически появляются входные и выходные параметры запроса
На рисунке видим один входной (желтая стрелка) и семь выходных (зеленая стрелка) параметров. Каждый входной параметр можно задать в виде константы, функции или переменной через редактор выражений. А для каждого выходного параметра задается переменная, которая примет значение параметра после успешного выполнения запроса. Назначение переменных выходным параметрам осуществляется через редактор выражений.
Из компонента ведут три перехода:
- ОК - переход в случае успешного выполнения запроса;
- Ошибка – если в процессе выполнения запроса произошла ошибка;
- Таймаут – если SQL запрос не был выполнен за указанное время.