Урок 20 Работа с SQL-запросом — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 32: Строка 32:
 
'''2)''' Вручную создать таблицу в любой базе данных с помощью '''SQL Server Management Studio'''
 
'''2)''' Вручную создать таблицу в любой базе данных с помощью '''SQL Server Management Studio'''
  
После создания таблицы вы сможете обращаться к ней, записывать и считывать данные в ходе работы сценариев. Рассмотрим описанный процесс поподробнее.  
+
После создания таблицы вы сможете обращаться к ней, записывать и считывать данные в ходе работы сценариев с помощью компонента "SQL-запрос".  
 +
 
 +
Компонент позволяет работать:
 +
* с локальными таблицами, которые располагаются в базе данных '''Oktell'''
 +
* с таблицами в других базах данных '''Microsoft SQL Server'''
 +
* с таблицами другого '''Microsoft SQL-сервера''' (''ADO-подключение'')
 +
* с таблицами '''MySQL''', '''Oracle''', '''SQLite''' и т.д. (''OLE подключение'', ''Подключение к Oracle'')
 +
* с базами данных '''Microsoft Access''' и документами '''Microsoft Excel''' (''ODBC подключение'')
 +
* ''другими базами данных, которые можно связать с '''SQL Server'''''
 +
 
 +
Рассмотрим описанный процесс поподробнее.  
  
  
Строка 101: Строка 111:
 
'''Задача:''' При входящем звонке записывать информацию об абоненте ('''CallerId''', '''CalledId''' и время звонка). Вывести уведомление оператору с которым соединится данный абонент.  
 
'''Задача:''' При входящем звонке записывать информацию об абоненте ('''CallerId''', '''CalledId''' и время звонка). Вывести уведомление оператору с которым соединится данный абонент.  
  
 +
Сценарий выглядит следующим образом:
 +
 +
 +
[[Файл:Урок20-007.png |center | 600px]]
 +
 +
 +
Разберем компоненты сценария поподробнее.
 +
 +
<u>Компонент "'''Данные абонента'''".</u> Определяются основные параметры звонка - время, номер абонента и набранный номер.
 +
* Переменной '''Datetime''' (дата/время) присваивается значение функции "'''Текущие дата и время'''"
 +
* Переменной '''CalledId''' (строковая) присваивается значение функции "'''Внешний номер (CalledId)'''"
 +
* Переменной '''CallerId''' (строковая) присваивается значение функции "'''Номер абонента (CallerId)'''"
 +
* Переменной '''Line''' (строковая) присваивается значение функции "'''Guid-идентификатор линии'''"
 +
 +
<u>Компонент "'''INSERT'''".</u> Выполняет SQL-запрос добавления данных в таблицу '''Lesson20'''.
 +
 +
Компонент SQL-запрос настраивается в 3 этапа.
 +
'''1 этап: Настройка подключения к базе данных.''' Используется вкладка "Подключение".
 +
 +
По умолчанию, компонент работает с собственной БД Oktell.
 +
:*Если указать название таблицы, SQL-запрос будет искать ее в БД Oktell. Например, название table обозначает таблицу [oktell].[dbo].[missed].
 +
:*Для обращения к таблицы в другой базе SQL-сервера OKTELL используйте название, например [oktell_cc_temp].[dbo].[A_Cube_CC_Cat_OperatorInfo]
 +
 +
Для обращения к таблицам других серверов на вкладке необходимо выбрать тип подключения и ввести строку подключения к БД.
 +
* ADO подключение - подключение к другому Microsoft SQL Server
 +
* OLE подключение - подключение к серверам MySQL
 +
* Подключение к Oracle
 +
* ODBC подключение - подключение к Microsoft Access.
 +
Для каждого типа показываются примеры строки подключения.
 +
 +
Использовать другие базы данных можно с помощью линковки их к SQL-серверу '''OKTELL'''. Более подробно написано в статье [[Подключение внешних БД]]
 +
 +
'''2 этап: Ввод текста запроса.''' Используется вкладка "Запрос".
 +
 +
*
 +
 +
'''3 этап: Назначение переменных параметрам запроса.'''
 +
 +
 +
 +
<u></u>
 +
<u></u><u></u>
  
  

Версия 07:47, 25 марта 2014

Наверх К предыдущему уроку

В этом уроке разбирается компонент работы с базами данных "SQL-запрос".


Урок20-006.png


Введение

В ходе работы телефонии зачастую требуется получать статистику по соединениям. Например, требуется сохранять данные по входящим соединениям, а затем вывести количество звонков в зависимости от времени суток. Иногда необходимо выводить детализацию исходящих разговоров по каждому оператору. Подобных задач можно придумать очень много, но для решения каждой из них требуется работа с базами данных.

Базы данных, в основном, применяются в целях хранения сведений по абонентам, информации по коммутациям и различных системных настроек. В своей работе Oktell использует Microsoft SQL Server. Когда вы устанавливаете программу, автоматически создаются 3 системные базы данных:

  • oktell - основная БД для хранения оперативной статистики и статистики АТС.
  • oktell_settings - БД для хранения настроек комплекса, используемых для загрузки сервера.
  • oktell_cc_temp - БД для хранения статистики работы call-центра в пространственных таблицах.

Обращение сервера Oktell к БД всегда осуществляется через основную базу oktell.

Для создания и использования собственной таблицы существуют два способа:

1) Использовать модуль "Таблицы абонентов" в разделе "Call-центр". Созданная таблица будет располагаться в БД Oktell

2) Вручную создать таблицу в любой базе данных с помощью SQL Server Management Studio

После создания таблицы вы сможете обращаться к ней, записывать и считывать данные в ходе работы сценариев с помощью компонента "SQL-запрос".

Компонент позволяет работать:

  • с локальными таблицами, которые располагаются в базе данных Oktell
  • с таблицами в других базах данных Microsoft SQL Server
  • с таблицами другого Microsoft SQL-сервера (ADO-подключение)
  • с таблицами MySQL, Oracle, SQLite и т.д. (OLE подключение, Подключение к Oracle)
  • с базами данных Microsoft Access и документами Microsoft Excel (ODBC подключение)
  • другими базами данных, которые можно связать с SQL Server

Рассмотрим описанный процесс поподробнее.


Создание таблицы

С помощью модуля "Таблицы абонентов"

ВНИМАНИЕ: Для того, чтобы вы могли использовать этот модуль, в вашей системе должна быть приобретена хотя бы одна лицензия оператора Call-центра.

Чтобы создать таблицу в базе данных Oktell:

  • Перейдите в модуль "Проекты". Нажмите Добавить. Создайте проект.
  • Перейдите в модуль "Таблицы абонентов". Нажмите Добавить.


Урок20-001.png Урок20-002.png


  • На вкладке "Подключение" введите название таблицы. В примере название таблицы "Lesson20". Нажмите "Далее".
  • На вкладке "Данные" добавьте столбцы для хранения данных. В примере добавлены следующие столбцы:
  • CallerId - поле для хранения телефона абонента. Тип Nvarchar(auto)
  • CalledId - поле для хранения набранного номера. Тип Nvarchar(auto)
  • Datetime - поле для хранения времени звонка. Тип Datetime
  • Нажмите "Сохранить".


Урок20-003.png Урок20-004.png


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


Создание таблицы вручную

Если у вас нет модуля Call-центра, вы можете создать таблицы абонентов вручную, пользуясь программой SQL Server Management Studio (SSMS). Для каждой версии Microsoft SQL Server устанавливается соответствующая версия SSMS.

Программа доступна доступна на сайте http://www.microsoft.com/.

Чтобы создать таблицу вручную:

  • Зайдите в SSMS и создайте запрос вида (пример для таблицы Lesson20 (см.выше))
USE [oktell]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Lesson20](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[CallerId] [nvarchar](2000) NULL,
	[CalledId] [nvarchar](2000) NULL,
	[Datetime] [datetime] NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
  • Нажмите F5 или кнопку "Выполнить". Таблица Lesson20 будет создана в БД Oktell и к ней можно будет обращаться в сценариях.


Урок20-005.png


Использование SQL-запросов в сценариях

Задача: При входящем звонке записывать информацию об абоненте (CallerId, CalledId и время звонка). Вывести уведомление оператору с которым соединится данный абонент.

Сценарий выглядит следующим образом:


Урок20-007.png


Разберем компоненты сценария поподробнее.

Компонент "Данные абонента". Определяются основные параметры звонка - время, номер абонента и набранный номер.

  • Переменной Datetime (дата/время) присваивается значение функции "Текущие дата и время"
  • Переменной CalledId (строковая) присваивается значение функции "Внешний номер (CalledId)"
  • Переменной CallerId (строковая) присваивается значение функции "Номер абонента (CallerId)"
  • Переменной Line (строковая) присваивается значение функции "Guid-идентификатор линии"

Компонент "INSERT". Выполняет SQL-запрос добавления данных в таблицу Lesson20.

Компонент SQL-запрос настраивается в 3 этапа. 1 этап: Настройка подключения к базе данных. Используется вкладка "Подключение".

По умолчанию, компонент работает с собственной БД Oktell.

  • Если указать название таблицы, SQL-запрос будет искать ее в БД Oktell. Например, название table обозначает таблицу [oktell].[dbo].[missed].
  • Для обращения к таблицы в другой базе SQL-сервера OKTELL используйте название, например [oktell_cc_temp].[dbo].[A_Cube_CC_Cat_OperatorInfo]

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

  • ADO подключение - подключение к другому Microsoft SQL Server
  • OLE подключение - подключение к серверам MySQL
  • Подключение к Oracle
  • ODBC подключение - подключение к Microsoft Access.

Для каждого типа показываются примеры строки подключения.

Использовать другие базы данных можно с помощью линковки их к SQL-серверу OKTELL. Более подробно написано в статье Подключение внешних БД

2 этап: Ввод текста запроса. Используется вкладка "Запрос".

3 этап: Назначение переменных параметрам запроса.




Наверх К предыдущему уроку