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

При использовании правил проверки, значения вводимые в поля и в записи сравниваются с указанными вами выражениями правил. Если введенное значение не отвечает требованиям выражения правила, то эта величина отбрасывается.

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

NoteСовет

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

NoteЗамечание

Правила проверки хранятся в файле базы данных (.dbc). Выведение из базы таблицы или ее удаление выводит и удаляет все правила проверки уровня поля и записи, которые были связаны с удаляемой или выводимой таблицей. Однако, хранимые процедуры, на которые ссылались удаленные правила проверки останутся в базе данных.

Приведенные ниже разделы содержат более подробную информацию о работе с правилами проверки:

Выбор между правилами проверки уровня поля и записи

Вы можете использовать правило проверки уровня поля, когда справедливо приведенное ниже:

  • Вы желаете проверять тип информации, которую пользователь может вводить в поле.

  • Вы желаете проверять данные в поле независимо от любых других вводов в запись.

  • Вы желаете сравнимать значения, введенные в поле со значениями из других таблиц.

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

Вы можете использовать правило проверки уровня записи, когда справедливо приведенное ниже:

  • Вы желаете управлять типом информации, которую пользователь вводить в запись.

  • Вы желаете сравнивать значения двух или более полей в той же самой записи для гарантии того, что они отвечают с бизнес-правилами базы данных.

Например, вы можете использовать правила проверки уровня записи для того, чтобы убедиться в том, что значение в поле всегда больше другого значения в той же самой записи.

Проверка поля и правила проверки записи

Правила проверки поля и записи активны, когда данные буферированы. В общем случае, правила проверки поля проверяются, когда меняется значение поля правила проверки записи проверяется, когда меняется значение записи.

NoteЗамечание

Если значения поля или записи не изменялись, правила проверки не срабатывают. Когда значения не меняются, вы можете перемещаться по полям и записям, без их проверки.

В приведенной ниже таблице описывается более конкретно - когда Visual FoxPro проверяет правила проверки поля в зависимости от метода ввода данных.

 
Изменение значения с помощью Окно или команда Проверяется правило поля...

Интерфейс пользователя

Окно Browse, форам или другое окно

При вызоде из поля.

Команды, которые не указывают поля

APPEND, APPEND GENERAL, APPEND MEMO, BROWSE, CHANGE, DELETE, EDIT, GATHER

При изменении значения поля.

Правило проверяется в поле в порядке, указанном в команде.

Команды, которые не указывают поля

APPEND с опцией BLANK, INSERT - SQL

При добавлении или вставке записи.

Команды, которые указывают поля

UPDATE - SQL, REPLACE

В порядке полей, указанном в команде.

В отличие от этого, Visual FoxPro проверяет правила проверки записи каждый раз, когда указатель записи перемещается к другой записи, независимо от используемого метода ввода данных. В дополнение к этому, в окне browse, правила проверки записи проверяются, если вы изменяете запись, не не смещаете указатель записи, а затем закрываете окно browse. Visual FoxPro генерирует любую ошибку, которая может случиться и затем закрывает окно browse.

Caution noteПредупреждение

Не включайте в ваши правила проверки любые команды или функции, которые пытаются переместить указатель записи в текущей области, в которой проверяютс правила. Например, включение команд или функций, таких как SEEK, LOCATE, SKIP, APPEND, APPEND BLANK, INSERT или AVERAGE, COUNT, BROWSE и REPLACE FOR в правила проверки, могут проверять их рекурсивно, создавая условия для ошибки.

NoteЗамечание

При вызове триггера, Alias всегда является псевдоименем обновляемого курсора, независимо от выбранного псевдоимени, в коде, который вызывает срабатывание триггера.

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

Смотрите также