Поясняк (1230875), страница 3
Текст из файла (страница 3)
В Firebird генерация числовой последовательности осуществляется с помощью генераторов. Генератор - это самостоятельный объект базы данных, который сам по себе ни с какими полями не связан. При вызове GEN_ID(GeneratorName,1) происходит увеличение генератора "GeneratorName" на единицу и функция возвращает полученное значение. В дальнейшем это значение можно использовать в хранимых процедурах, триггерах, операторах INSERT, UPDATE и даже SELECT. Более того, на одну таблицу можно настроить несколько генераторов и при этом никаких сложностей не возникнет. Пример добавления записи:
INSERT INTO MYTABLE (ID) VALUES (GEN_ID(GEN_MYTABLE,1))
1.5.4 Триггеры
Для автоматической генерации значений используют триггеры. Триггер - это процедура, которая хранится в базе данных и выполняется после какого-либо события, к которому он привязан, например:
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID=GEN_ID(GEN_MYTABLE,1);
END
Существуют триггеры уровня DDL, срабатывающие при внесении изменений в структуру базы данных, и триггеры уровня DML, срабатывающие при изменении данных, хранящихся в БД. DML-триггеры могут срабатывать при возникновении следующих событий:
-
вставка (команда INSERT);
-
изменение (команда UPDATE);
-
удаление (команда DELETE).
Триггеры могут применяться в самых различных ситуациях:
-
проверка корректности и согласованности данных;
-
обеспечение ссылочной целостности;
-
удовлетворение сложных правил бизнес-логики;
-
ведение журнала выполненных действий;
-
и многое другое.
Особенность DML-триггеров в Firebird состоит в том, что они срабатывают для каждой записи.
1.5.5 Транзакции
Любые операции чтения или записи осуществляются в контексте транзакций. Транзакция - это группа операций, которая может быть выполнена либо полностью успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта.
Если во время записи в базу данных выяснилось, что записываемая информация ошибочна, то достаточно произвести откат транзакции и никакая ошибочная информация в БД записана не будет. Если же прикладная программа уверена в корректности информации, то после подтверждения транзакции данные появится в БД.
В СУБД Firebird имеется 2 уровня изоляции транзакций: SNAPSHOT (моментальный снимок зафиксированных изменений) и READ COMMITED (невоспроизводимое чтение зафиксированных изменений). В случае SNAPSHOT транзакция видит все зафиксированные в БД изменения на момент своего старта, а также все изменения, которые были внесены в контексте этой самой транзакции. В случае READ COMMITED транзакция видит все зафиксированные изменения, как свои, так и чужие, причем не важно, были ли они до ее старта или после. Этих двух уровней изоляции транзакций с запасом хватает для решения любой поставленной задачи. Уровень изоляции SNAPSHOT - самый мощный. Его целесообразно использовать при построении отчетов. При этом гарантируется, что после запуска транзакции SNAPSHOT в отчет не попадут никакие новые данные, появившиеся в БД после старта транзакции. Оба типа транзакций для Firebird обходятся очень дешево и не требуют практически никаких ресурсов.
1.5.6 Преимущества
Ниже приведены важные, по мнению разработчика, преимущества Firebird:
-
стоимость (данный продукт бесплатный);
-
простота установки;
-
одновременная работа большого количества пользователей без каких-либо зависаний и блокировок;
-
кроссплатформенность, то есть возможность работы клиентской и серверной частей Firebird под разными операционными системами (ОС) такими, как Windows 32- и 64-бит, Linux 32- и 64-бит, Solaris, HP-UX, MacOs X;
-
открытость исходных кодов, т.е. каждый может доработать интересующий его функционал;
-
удобные средства администрирования.
1.6 Графический пользовательский интерфейс IBExpert
IBExpert - GUI-оболочка, предназначенная для разработки и администрирования баз данных InterBase и Firebird, а также для выбора и изменения данных, хранящихся в базах.
Важным преимуществом данного программного обеспечения является простой интерфейс, не требующий колоссальных знаний, который представлен на рисунке 2.6.
Рисунок 2.6 - Интерфейс GUI-оболочки IBExpert
Разработчики указывают следующие основные преимущества:
-
поддержка InterBase версий 4.х, 5.х, 6.х, 7.х, 2007 и 2009; Firebird 1.х, 2.х, 3.х; Yaffil 1.х;
-
работа одновременно с несколькими базами данных;
-
отдельные редакторы для всех объектов БД с синтаксической подсветкой;
-
мощный SQL-редактор с историей запросов и возможностью их фонового выполнения;
-
автозавершение кода SQL (название таблиц, полей, и т. п.);
-
отладчик хранимых процедур и триггеров;
-
поиск в метаданных;
-
полное и частичное извлечение данных и метаданных;
-
анализатор зависимостей объектов баз данных;
-
отчёты по метаданным;
-
менеджеры пользователей и пользовательских привилегий;
-
экспорт данных в различные форматы. [7]
1.7 Среда разработки Delphi
Delphi – это среда разработки программ, ориентированных на работу в операционных системах семейства Windows. Программы в Delphi создаются на основе современной технологии визуального проектирования которая, в свою очередь, базируется на идеях объектно-ориентированного программирования. Программы в Delphi пишутся на языке Object Pascal, который является преемником и развитием языка Turbo Pascal. Как следует из его названия, этот язык также воплотил концепцию объектно-ориентированного программирования. [7]
Интерфейс среды программирования состоит из следующих составных частей:
-
дизайнер форм (рисунок 2.7);
-
окно редактора (рисунок 2.8);
-
палитра компонентов (рисунок 2.9);
-
инспектор объектов (рисунок 2.10);
-
справочник.
Рисунок 2.7 - Дизайнер форм
Рисунок 2.8 - Окно редактора
Рисунок 2.9 - Палитра компонентов
Рисунок 2.10 - Инспектор объектов
Первоначально дизайнер форм состоит из пустого окна, которое заполняется различными необходимыми объектами, расположенными на палитре компонентов. Несмотря на важность дизайнера форм, местом, где программисты проводят основное время является редактор кода. Палитра компонентов использует постраничную группировку объектов, например Standard, Additional, Dialogs. Слева от дизайнера форм расположен инспектор объектов, информация в котором меняется в зависимости от объекта, выбранного на форме. Инспектор объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Последняя важная часть среды Delphi - справочник. Для доступа к этому инструменту нужно выбрать в системном меню пункт Help и затем Delphi Help [25].
Преимущества Delphi по сравнению с аналогичными программными продуктами:
-
быстрота разработки приложения (RAD);
-
высокая производительность разработанного приложения;
-
низкие требования разработанного приложения к ресурсам компьютера;
-
наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;
-
возможность разработки новых компонентов и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);
-
удачная проработка иерархии объектов.[8]
2. Техническая часть
2.1 Разработка автоматизированных рабочих мест
2.1.1 Сроки проектирования
Создание проекта сочетает как сбор исходных данных, так и составление смет на ПИР (проектно-исследовательскую работу).
Согласно техническому заданию, на первом этапе работы над проектом ГИП заводит карточку объекта, которая должна содержать все необходимые заготовки стадий и этапов, все необходимые разделы, согласно внутренним стандартам предприятия. В соответствии с порядком, установленном в институте, производится формирование авторского коллектива. Каждому автору раздела отправляется форма карточки объекта, содержащая информацию, необходимую для начала сбора исходных данных или определения перечня запросов в адрес заказчика о предоставлении исходных данных.
Формирование исходной информации в основном зависит от опыта и знаний конкретного ГИПа. Для исключения ошибок, ускорения процесса подготовки запросов ГИП может использовать архивную базу заготовок предыдущих запросов как обязательных (согласно нормативной документации на проектирование: ТУ, ТЗ, отвод земель и т.д.), так и носящих справочный характер (предыдущие проекты, съемки, дополнительная информация). Архивная база запросов создается с течением времени на основе выполняемых проектов и пополняется конкретными нормативными документами (основаниями для запросов). База пополняется всеми ГИПами, и находиться в общем пользовании ГИПов и авторов разделов.
При формировании карточки объекта ГИП ставит отметки напротив тех документов, которые, по его мнению, будут необходимы при разработке данного проекта. Автоматически, необходимые задания отображаются у авторов разделов (составление запросов, писем, список согласований и т.д.). Пропуск того или иного документа ставит ГИП, подтверждая это своей электронной меткой. Автор раздела при получении задания на выполнение запроса ставит примерный срок выполнения (эту дату видит ГИП и при согласии согласовывает ее своей электронной меткой), готовит запрос, подписывает у руководства, отправляет адресату, ставит дату отправки. Программа автоматически устанавливает примерную дату получения ответа (месяц в соответствии с законодательством) и формирует список писем для контроля за получением ответа. Этот список входит в задание юриста предприятия для контроля сроков получения ответов и выставления санкций.
При разработке договора на объект составляется линейный график. Это необходимо для определения сроков проектирования и соответственно составления календарного плана в договоре. В настоящее время эти сроки определяются произвольно – в зависимости от пожеланий заказчика, финансовых перечислений, формирования инвестиционных планов, – но совершенно не зависят от реальных сроков проектирования. Поэтому хорошей основой для принятия решения о сроках проектирования будут хранящиеся в архивной базе сроки выполнения похожих или аналогичных проектов.
2.1.2 Авторизация
Рабочее утро сотрудника начинается с отметки в окне авторизации. Вход производится по логину и личному паролю. Введенные в окне авторизации имя пользователя и пароль сравниваются с соответствующими данными в таблице FIO_ в БД. При совпадении данных открывается рабочее окно программы, соответствующее должности оператора ЭВМ (АРМ инженера, АРМ начальника группы или АРМ главного специалиста/начальника отдела) одновременно в таблицу INIC в БД заносится время входа сотрудника в АРМ, т.е. подтверждается факт присутствия на рабочем месте. Ниже приведен код программы, отвечающий за выбор открывающегося окна:
if (Name1=NameLog) and (Pass=PassLog) then
begin
case Doljn of
5..10: Form1.Show;
2: Form4.Show;















