Урок 20 Работа с SQL-запросом — различия между версиями
Строка 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-запрос".
Введение
В ходе работы телефонии зачастую требуется получать статистику по соединениям. Например, требуется сохранять данные по входящим соединениям, а затем вывести количество звонков в зависимости от времени суток. Иногда необходимо выводить детализацию исходящих разговоров по каждому оператору. Подобных задач можно придумать очень много, но для решения каждой из них требуется работа с базами данных.
Базы данных, в основном, применяются в целях хранения сведений по абонентам, информации по коммутациям и различных системных настроек. В своей работе 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:
- Перейдите в модуль "Проекты". Нажмите Добавить. Создайте проект.
- Перейдите в модуль "Таблицы абонентов". Нажмите Добавить.
- На вкладке "Подключение" введите название таблицы. В примере название таблицы "Lesson20". Нажмите "Далее".
- На вкладке "Данные" добавьте столбцы для хранения данных. В примере добавлены следующие столбцы:
- CallerId - поле для хранения телефона абонента. Тип Nvarchar(auto)
- CalledId - поле для хранения набранного номера. Тип Nvarchar(auto)
- Datetime - поле для хранения времени звонка. Тип Datetime
- Нажмите "Сохранить".
Созданная таблица будет доступна в базе данных 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 и к ней можно будет обращаться в сценариях.
Использование SQL-запросов в сценариях
Задача: При входящем звонке записывать информацию об абоненте (CallerId, CalledId и время звонка). Вывести уведомление оператору с которым соединится данный абонент.
Сценарий выглядит следующим образом:
Разберем компоненты сценария поподробнее.
Компонент "Данные абонента". Определяются основные параметры звонка - время, номер абонента и набранный номер.
- Переменной 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 этап: Назначение переменных параметрам запроса.
Наверх | К предыдущему уроку |