Разработка информационной системы "Аптека"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

) языка T-SQL для обработки транзакций был размещен компонент ADOQuery (с вкладки ADO) на модуле данных и переименован в TRAN.

Создан обработчик события BeforePost для набора данных Цена, который будет срабатывать непосредственно перед сохранением записи в Заказ (как новой записи, так и уже существующей исправленной записи)

Ккод обработчика :

TDM.beforpost(DataSet: TDataSet);DM.zakaz.State=dsInsert then_v_cenu:=true;.SQL.Clear;.SQL.Add(BEGIN TRAN);.ExecSQL;

end;

 

Приведенный программный код в случае добавления в ЗАКАЗ именно новой записи установит для глобальной переменной Dobavit_v_cenu значение True, чтобы при срабатывании следом события AfterPost автоматически бы добавилась и сохранилась запись в Цена. В противном случае, если Dovabit_v_cenu=false, что говорит о том, что была исправлена уже существующая запись в ЗАКАЗ, то автоматически добавляться новая запись в Цена не будет.

Создан обработчик события AfterPost для набора данных ЗАКАЗ, который сработает сразу после сохранения текущей записи набора данных ЗАКАЗ.

Код обработчика

TDM.aftepost(DataSet: TDataSet);DM do beginDobavit_v_cenu=true then begin.Append;.FieldByName(kodzakaz).AsVariant:=zakaz.FieldByName(kodzakaz).AsVariant;.FieldByName(koducluga).AsVariant:=uclugi.FieldByName(koducluga).AsVariant;.Post;( );_v_cenu:=false;;.SQL.Clear;.SQL.Add(COMMIT TRAN);.ExecSQL;.SQL.Clear;.SQL.Add(ROLLBACK TRAN);.ExecSQL;.Close;.Open;;;;

 

Приведенный программный код содержит конструкцию TRY..EXCEPT, которую удобно использовать в приложении для обработки исключений при использовании механизма транзакций. Конструкция TRY..EXCEPT работает так:

если при выполнении операторов блока TRY возникает исключение, то управление передается первому оператору блока EXCEPT;

если исключения не возникло, то операторы блока EXCEPT не выполняются.

Если в блоке TRY возникает исключение, выполняется инструкция ROLLBACK TRAN языка T-SQL, производящая откат всех изменений в БД, которые были выполнены с начала транзакции.

Создан обработчик события OnPostError для набора данных ЗАКАЗ

Код обработчика:

TDM.error(DataSet: TDataSet; E: EDatabaseError;Action: TDataAction);.SQL.Clear;.SQL.Add(ROLLBACK TRAN);.ExecSQL;.Close;.Open;

end;

 

Приведенный программный код срабатывает при возникновении ошибки сохранения текущей записи в ЗАКАЗ, выполняет инструкцию ROLLBACK TRAN языка T-SQL, производящую откат всех изменений в БД, которые были выполнены с начала транзакции.

Необходимо реализовать связь много-ко-многим в обратном направлении со стороны таблицы Услуги.

Для этого был размещен на Модуле данных (DM) новый набор данных (компонент класса TADOQuery) с именем, VHOD (от слов входимость, применимость) и в его свойство SQL написан приблизительный статический запрос на языке T-SQL (рис. 16).

 

Рис. 16

 

Назначение набора данных VHOD заключается в формировании из таблицы Цена базы данных только тех записей, поле связи КОДЦЕНА которых равно полю КОДЦЕНА выбранной записи в наборе данных УСЛУГИ (посредством работы динамического запроса).

Поскольку в дальнейшем необходимо отобразить содержимое набора данных VHOD в визуальной таблице на экранной форме,был размещен на Модуле данных (DM) соответствующий источник данных DSVHOD (компонент класса TDataSource) и связан с набором данных VHOD через свойство DataSet. (Рис. 17)

 

Рис. 17

 

Далее:

Была создана новая экранную форма Form3 (меню File -> New -> Form);