Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

2.4. Триггеры и правило проверки записи

Триггер – это код, выполняющий проверку данных при их добавлении, удалении или редактировании. Реально триггер оформляется в виде выражения, возвращающего .T. или .F.; выражение вводится на вкладке Table проектировщика таблицы базы данных (рис. 2.12).

Рис. 2.12. Фрагмент вкладки Table проектировщика таблицы Authors

Если триггер отказывает, то есть вычисляется со значением .F., то соответствующая операция (добавление, обновление или удаление) выполнена не будет и система сгенерирует ошибку.

Триггеры автоматически формируются VFP при задании правил добавления, обновления и удаления записей либо программируются пользователем. При этом итоговое выражение триггера может объединять код созданный системой и добавленный пользователем. Например, триггер обновления можно записать в следующем виде:

__ri_update_authors( ) and AuthorId >= 0

где первый операнд выражения добавлен системой автоматически после генерации процедуры __RI_UPDATE_authors( ), обеспечивающей правило обновления Cascade при работе с таблицами Authors и BooksAuthors, а второй операнд дописан пользователем.

В нашем случае, однако, второе условие в триггере избыточно, поскольку его содержит правило проверки записи, определенное в поле Rule вкладки Table (см. рис. 2.12). При попытке ввести запись, не отвечающую правилу проверки, возникнет ошибка, сопровождаемая сообщением (рис. 2.13), заданным в поле Message той же вкладки.

Рис. 2.13. Нарушено правило проверки AuthorId >= 0 записи

После нажатия на кнопку Revert восстановятся прежние значения редактируемой записи.

Для свободных, не входящих в базу данных таблиц триггер и правило проверки записи задать нельзя.

2.5. Файлы проекта

2.5.1. Перечень файлов и порядок их описания

Перечислены в табл. 2.4.

Таблица 2.4

Файлы приложения HomeLibrary

Файл

Папка

Вид

Описание

Start.prg

Prgs

Программа

Главный файл

OleCalendar.prg

Prgs

"

Открывает форму с Ole-календарем, в котором выбирается дата

TblsPacking

Prgs

"

Упаковывает таблицы базы данных

HomeLibrary.mnx

Menu

Меню

Меню, запускающее файлы приложения

Authors.scx

Forms

Форма

Отображает таблицу Authors

AuthorEdit.scx

"

"

Добавляет или изменяет данные таблицы Authors; запускается из Authors.scx

Books.scx

"

"

Отображает таблицы Books и отображает и управляет списком авторов выбранной книги (формирует таблицу BooksAuthors)

BookEdit.scx

"

"

Добавляет или изменяет данные таблицы Books; запускается из Books.scx

Works.scx

"

"

Отображает таблицу BooksContent

WorkEdit.scx

"

"

Добавляет или изменяет данные таблицы Books; запускается из BooksContent.scx

WorkTypes.scx

"

"

Отображает, добавляет и изменяет данные таблицы WorkTypes

HomeLibrary.dbc

–

База данных

Описана в разд. 2.2

Таблицы базы данных

–

Таблица

Перечислены в табл. 2.1

Все файлы проекта будут включены в приложение: их свойство Exclude установлено в .F. (детали см. в разд. 9.5).

Файлы располагаются в папках, помещенных в директорию appPath; поэтому полное имя файла – это appPath + <Папка\> + <Файл>.

Такие файлы, как меню (расширение MNX), формы (SCX), контейнер базы данных (DBC) и др., являются таблицами. Подобную таблицу можно открыть, если файл не используется, для просмотра, употребляя команду USE, например:

use (appPath + 'HomeLibrary.dbc') in 0 && Расширение обязательно

browse last noedit

Фрагмент контейнера базы данных HomeLibrary, открытого в browse-окне, приведен на рис. 2.14.

Рис. 2.14. Фрагмент контейнера базы данных HomeLibrary.dbc

Управление таблицами базы данных HomeLibrary осуществляется формами приложения. Их рассмотрение выполняется без углубления в детали механизма создания форм и внедрения в них элементов управления. В частности, не обсуждаются подробно используемые свойства, события, методы объектов и команды и функции языка программирования. Также на второй план отнесена проблема создания привлекательного интерфейса, например с использованием картинок вместо названий кнопок. Все эти темы рассматриваются позже в соответствующих разделах пособия.

Цель приводимого материала – дать общее представление о последовательности создания файлов приложения их составе и сопровождающих программах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]