Контроль достоверности данных на уровне таблицы

      Комментарии к записи Контроль достоверности данных на уровне таблицы отключены

Триггеры

Триггеры представляют собой методы, с помощью которых обеспечивается целостность базы данных при внесении изменений. Триггеры не принимают параметров и не возвращают значений. Они выполняются неявно. То есть триггер запускается только при попытке изменения данных.

Триггер – это код, выполняющий проверку данных при их добавлении, удалении или редактировании. Он представляет собой логическое выражение, возвращающее значение .T. или .F. Триггер автоматически выполняется при каждой попытке изменить защищаемые данные. Если, после проверки поставленного условия триггер возвращает значение .T., то всё в порядке – действие выполняется! Т.о. триггеры обеспечивают целостность данных, предотвращая их несанкционированное или неправильное изменение.

Триггер является частью транзакции, следовательно, если триггер терпит неудачу, отменяется вся транзакция. И наоборот, если какая-то часть транзакции не удалась, то и триггер будет отменен.

На уровне таблицы контроль может производиться:

• на уровне свойств поля таблицы (вкладка Fields окна конструктора таблиц – Table Designer); используется, если необходима проверка при добавлении или удалении записи;

• на уровне свойств таблицы в целом (вкладка Table окна конструктора таблиц); осуществляется, если необходима проверка нескольких записей таблицы.

При определении условий достоверности ввода данных используются триггеры и хранимые процедуры.

Контроль достоверности ввода данных на уровне записи. Рассмотрим пример контроля ввода данных на уровне свойств поля таблицы. На вкладке Fields используем область Field validation (Проверка правильности ввода в поле) окна конструктора таблиц. (Рис.38)

В поле Rule (Условие, правило) задается логическое выражение, а в поле Message (Сообщение) – сообщение, отображаемое на экране, если логическое выражение возвращает значение False.

Рассмотрим пример. Откройте таблицу Products базы данных TestData. Допустим в эту таблицу, в графу unit_cost, нельзя вводить стоимость товара свыше $100.

Введём в поле Rule логическое выражение

IIF(products.unit_cost$100,.F.,.T.)здесь IIF() – функция VFP, альтернативная форма IF…ENDIF структуры; определяет одно из двух значений, основанных на логическом выражении;

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

символ доллара появился в выражении в связи с тем, что в данном столбце таблицы использован тип данных Currency (валюта).

В поле Message введём сообщение:

“Не свыше $100”

Заканчивая создание правила, нажмите кнопку ОК в окне конструктора таблиц. В открывшемся окне запроса снимите отметку в поле «Compare the rules against existing data» и щёлкните по кнопке Yes. Окно конструктора закроется.

Если теперь, открыть таблицу Products и попытаться ввести в поле unit_cost стоимость более $100, будет появляться сообщение, предупреждающее об ошибке. Введённые данные не сохраняются.

42. Отчёт. Создание отчета средствами мастера

Рассмотрим создание простого отчёта по таблице Orders базы данных TestData. Мастер отчётов запускается, через меню FileNew после открытия таблицы. В открывшемся окне New следует выбрать пункт Report, после чего щёлкнуть по кнопке Wizard.

Прежде всего, мастер открывает окно Wizard Selection (Выбор мастера), где следует выбрать пункт Report Wizard (Мастер отчётов) для работы с одной таблицей или пункт One-to many (один ко многим) для работы с двумя таблицами.

Рассмотрим создание отчёта для одной таблицы. Как обычно, процесс создания отчёта средствами мастера включает несколько шагов. Прежде всего (Step 1), выбирается база данных, таблица и поля из неё, которые будут отображены в отчёте. Процесс выбора происходит так же, как при использовании других мастеров, например, при создании таблицы

На втором шаге (рис.40, 41) выбирается способ группировки записей в отчёте. Можно выбрать до трёх полей. При этом, прежде всего, данные упорядочиваются по полю 1, затем по следующим полям.

Здесь же, нажав кнопку Summary option…, можно выбрать опции группировки и включить в отчёт итоговую информацию. Программа VFP предлагает пять различных функций для вычисления итоговых значений:

• SUM – сумма значений в выбранном поле;

• AVG – среднее значение в поле;

• COUNT – количество записей;

• MIN – наименьшее значение в поле;

• MAX – наибольшее значение в поле.

Функции SUM и AVG работают только с числовыми значениями.

В окне Summary Option можно, также, выбрать способ вывода итоговой информации. Можно выводить в отчёте всю информацию (Detail and Summary), только итоговую (Summary only) или отказаться от отображения итогов (No total). Кнопка Grouping option…позволяет выбрать опции группировки. Данные могут быть сгруппированы по полному содержанию поля или по начальным символам.

Далее, на шаге 3, выбирается стиль оформления отчёта. На шаге 4 можно определить положение листа бумаги, на который будет выводиться отчёт: вертикальное или горизонтальное. Пятый шаг позволяет определить способ сортировки записей, отображаемых в отчёте. Обратите внимание на то, что поля, уже выбранные в ходе шага 2, использовать нельзя. На последнем, шестом шаге, можно ознакомиться с видом отчёта, нажав кнопку Preview. Панель Print Preview (рис.42) позволяет: менять масштаб отображения отчёта; листать страницы отчёта; переходить к странице с указанным номером или направить отчёт на принтер. Ознакомившись с отчётом и выйдя из режима просмотра, можно сохранить отчёт, нажав кнопку Finish. Файл отчета получает расширение .frx. файл описания отчёта имеет расширение .frt.

Чтобы отчёт можно было запускать из окна проекта, его следует включить в проект, использовав кнопку Add окна проекта. Чтобы избежать выполнения этой операции, лучше запускать мастер создания отчётов сразу из окна проекта (New).

Статьи к прочтению:

Алексей Водовозов — Достоверность медицинской информации в интернете


Похожие статьи: