titlefontcolor titlefontstyle displayformat id_creator date_created id_mod dat_modint int int int nvarchar int int nvarchar int int int nvarchar nvarchar int int int nvarchar int datetime int datetimeІдентіфікатор Код користувача Код об'єкту форми Номер колонки в таблиці Y - видима колонка, N- невидима Ширина колонки в пікселях Вирівнювання колонки: 0-по лівому краю, 1-по правому краю, 2- по центру. Шрифт Розмір шрифту Колір шрифту Стиль шрифту Тема колонки Шрифт заголовка Розмір шрифту заголовка Колір шрифту заголовка Стиль шрифту заголовка Форатом виводу на екран Ким створена запис Дата створення запису Кем модифікована запис Коли модифікована запис
2.3 Розробка сервера додатків
.3.1 Алгоритм роботи сервера додатків
Для того щоб забезпечити оптимальну взаємодію екранних форм клієнтських додатків і в теж час здійснювати повноцінний контроль над всією інформаційною системою був розроблений і реалізований сервер додатків.
На малюнку 2.5 зображена структура лежить в основі прототипу сервера додатків.
Малюнок 2.5 - Структура сервера додатків
Сервер додатків приймає SQL-запити від користувача, які обробляються вбудованим модулем синтаксичного та семантичного розбору. Оброблені запити дозволяють сформувати запит або безпосередньо до бази дані, або до процедур і функцій модуля бізнес-логіки. Ці процедури і функції реалізують роботу з базою даних, дозволяють обробляти дані в пам'яті і виконувати запити на вибірку, пошук і модифікацію інформації над нереляціоннимі структурами даних. Так, наприклад, розглянемо спрощений синтаксис оператора SELECT мови SQL, використовуваного для вибірки даних:
SELECT [список стовпців]
FROM [список таблиць]
WHERE [умова відбору];
В даному випадку можна після ключового слова FROM можна вказати не список таблиць, з яких виробляється вибірка, а ім'я та параметри функції бізнес-логіки, спричиненої з модуля і возвращающей оброблені дані у вигляді таблиць, за якими вже і виробляється операція вибірки.
Реалізація подібної схеми в рамках програми демонструє один з основних моментів роботи описаної вище схеми сервера додатків - аналіз запитів користувача і виклик відповідних процедур та функцій обробки даних з модулів. Реалізація запитів від користувача в рамках мови SQL дозволяє спростити систему обробки та підвищити гнучкість і переносимість рішення. Таким чином, дана схема дозволяє створити додаткові процедури і функції бізнес-логіки, необхідні для конкретного підприємства, і реалізувати описану інформаційну систему.
При розробці сервера додатків, виникла необхідність у створенні модуля синтаксичного та семантичного розбору для обробки запитів на мові SQL, що задаються кінцевим користувачем. Цей модуль виконує обробку SQL-запитів, виділяючи ім'я та параметри викликається процедури, а також виконуючи необхідні операції над одержуваними від цієї процедури даними. Для розбору при написанні модуля були використані лише найбільш загальні оператори SQL, що дозволяють організувати базову роботу з реляційною базою даних. При необхідності набір підтримуваних операторів надалі може бути розширений.
В основі роботи модуля лежить лексичний аналіз вступників пропозицій для виділення операторів мови SQL, описи процедур або функцій та подальшого формування керуючих команд. Основне завдання лексичного аналізу - розбити вхідний текст, що складається з послідовності одиночних символів, на послідовність слів, або лексем, тобто виділити ці слова з безперервної послідовності символів. Усі символи вхідної послідовності з цієї точки зору поділяються на символи, що належать яким-небудь лексемам, і символи, що розділяють лексеми (роздільники). У деяких випадках між лексемами може і не бути роздільників. Лексичний аналізатор видає інформацію двох сортів: для синтаксичного аналізатора, працюючого слідом за лексичним, істотна інформація про послідовність класів лексем, обмежувачів і ключових слів, а для контекстного аналізу, працюючого слідом за синтаксичним, важлива інформація про конкретні значеннях окремих лексем (ідентифікаторів, чисел і т.д.). Тому загальна схема роботи лексичного аналізатора виглядає наступним чином:
1) відбувається виділення окремої лексеми (можливо, використовуючи символи-роздільники);
2) якщо виділена лексема - обмежувач, то він (точніше, певний його ознака) видається як результат лексичного аналізу;
) ключові слова розпізнаються явним виділенням безпосередньо з тексту.
Для даного модуля синтаксичного та семантичного розбору SQL-пропозицій був поб...