Разработка информационной системы "Аптека"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
) языка 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);