Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

Команда CREATE TRIGGER

См. также Пример

Создает для таблицы триггер Delete (удаления), Insert (добавления) или Update (обновления).

Синтаксис

CREATE TRIGGER ON TableName
FOR DELETE | INSERT | UPDATE AS lExpression

Параметры

TableName

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

FOR DELETE | INSERT | UPDATE

Задает тип триггера, который создает Visual FoxPro.

Если триггер указанного типа уже существует и команда SET SAFETY установила з ачение ON, Visual FoxPro спросит, следует ли вести запись поверх существующего триггера. Если команда SET SAFETY установила значение OFF, запись будет автоматически вестись поверх существующего триггера.

AS lExpression

Задает логическое выражение, вычисляемое при выполнении триггера. В качестве lExpression может фигурировать функция, определенная пользователем, или хранимая процеду а, возвращающая логическое значение. Хранимые процедуры можно создать для таб ицы с помощью команды MODIFY PROCEDURE.

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

Если вычисление выражения lExpression дает значение "истина" (.T.), выполняется команда или событие, которые приве и к срабатыванию триггера.

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

Комментарии

Пользуйтесь командой CREATE TRIGGER для того, чтобы отлавливать события, выз вающие удаление, добавление или изменение записей в таблице. Триггеры удаления, обавления или обновления можно создать только для таблицы, включенной в базу анных. Для создания базы данных используйте команду CREATE DATABASE, а для до авления в нее таблицы fox90001.gif команду ADD TABLE.

Для команды CREATE TRIGGER необходимо монопольное использование базы данных. Чтобы открыть базу данных в монопольном режиме, включите предложение EXCLUSIVE в команду OPEN DATABASE.

В следующих списках перечисляются события, которые вызывают срабатывание т иггеров Delete, Insert или Update.

Триггер Delete

Выдана команда DELETE.

Запись помечается на удаление с помощью меню Table окна просмотра или окна ре актирования.

Триггер Insert

fox90000.gif Выдана команда APPEND FROM.

fox90000.gif Выдана команда APPEND FROM ARRAY.

fox90000.gif Выдана команда APPEND BLANK.

fox90000.gif Добавляется запись с помощью меню Table окна просмотра или окна редактирования.

fox90000.gif Выдана команда IMPORT.

fox90000.gif Выдана команда INSERT - SQL.

fox90000.gif Выдана команда RECALL.

fox90000.gif Повторно вызывается запись с помощью меню Table окна просмотра или окна ре актирования.

Триггер Update

Любое событие, вызывающее модификацию записи. Например, триггер Update срабат вает, когда какой-либо элемент управления в форме изменяет содержимое поля.

fox90000.gif Выдана команда GATHER.

fox90000.gif Выдана команда REPLACE.

fox90000.gif Выдана команда REPLACE FROM ARRAY.

fox90000.gif Выдана команда UPDATE fox90002.gif SQL.

В отношении триггеров, созданных с помощью команды CREATE TRIGGER, действуют с едующие правила:

fox90000.gif Команду INSERT нельзя выдавать для таблицы с триггером. Однако можно испо ьзовать команду INSERT - SQL.

fox90000.gif Выдача команды PACK не приводит к срабатыванию триггеров.

fox90000.gif Выдача команды ZAP не приводит к срабатыванию триггера Delete.

fox90000.gif При обновлении записи, помеченной на удаление, никакие триггеры не срабатывают.

fox90000.gif Режим буферизации может препятствовать немедленному срабатыванию триггера:

Если буферизация таблицы не действует, триггер Update срабатывает при обновле ии записи, что происходит после проверки правил и ключей первичного индекса и и декса-кандидата.

Если буферизация таблицы действует, триггер Update срабатывает после выдачи команды TABLEUPDATE( ) и обновлении каждой буферизованной записи в таблице.



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.