Отправляет email-рассылки с помощью сервиса Sendsay

Автоматизация бизнеса

  Все выпуски  

Простой софт - автоматизация любого учета Триггеры


 

  «Все должно быть изложено так просто, как только возможно, но не проще» Альберт Эйнштейн.

 

 

Добрый день!!!

 

В сегодняшнем выпуске я расскажу про триггеры.

На примере программы «Склад и торговля» http://www.simple-soft.ru/ProductsCount.htm

 

Триггер - это дополнительная инструкция SQL, срабатывающая сразу после добавления или изменения записи. SQL - это язык запросов для модификации данных в БД (для добавления, удаления или изменения записей в таблицах), в данном случае. (Выборка данных нас здесь не интересует.)

Пример: Добавим триггер в таблицу Проданные товары.

Так как таблица Проданные товары является подчиненной таблице Продажи, то при изменении в ней количества или суммы товаров, общая сумма по документу (по факту продажи) должна измениться в главной таблице Продажи. Для этого и создадим триггер.

 

Кнопка Триггеры находится на панели инструментов. По умолчанию она скрыта. Правой кнопкой мышки делаем правый клик на панели инструментов и вызываем полный список всех кнопок. Включаем (делаем видимой) кнопку «Триггеры», установкой соответствующей галочки. Теперь нажимаем эту кнопку, появляется форма.

 

 Описание параметров настроечной таблицы.

 Включен - включение/выключение триггера. Отметим галочкой, т.е. включим.

Когда срабатывает - когда срабатывает триггер:

- при добавлении новой записи в таблицу;

- при изменении записи (любого поля);

- при добавлении и изменении записи;

- при изменении только конкретного поля.

Выберем при добавлении и изменении записи.

Поле - имя поля (если выбрано 'при изменении записи' или 'при изменении поля').

Тип операции - выполнение SQL инструкции или запуск указанного файла. Мы выберем SQL-команда.

Условие - необязательное условие, при котором триггер должен отрабатывать, например [Field1] = 0.

Подтверждение - текст сообщения с подтверждением, которое будет показано перед выполнением триггера (если требуется подтверждение). Запишем сюда подтверждение на изменение в таблице Продажи.

Триггер - SQL инструкция триггера (в случае типа операции 'SQL инструкция') или путь к файлу (в случае типа операции 'Запуск файла'), который нужно запускать. Можно указать несколько через точку с запятой.

Запишем её так: UPDATE tblSales SET SaleAmount = (SELECT SUM(AmountWithNds) FROM tblSalesProduct WHERE SaleID = <tblSales>.<ID>) WHERE ID = <tblSales>.<ID>

То есть мы изменяем (о чем свидетельствует слово Update) данные в таблице tblSales (Продажи). Изменяем значение конкретного поля – SaleAmount (Сумма). Значение формируется с помощью подзапроса, считающего сумму по всем товарам данной продажи. Подзапрос следует в круглых скобках.

Ключевое слово WHERE ID = … указывает на конкретную запись, которую мы меняем.

Нажимаем кнопку ОК.

 

Изменим цену продажи в таблице Проданные товары.

 

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

 

 

Если у Вас возникли какие-либо вопросы по данной функции, пишите мне, я с удовольствием Вам помогу. Также Вы можете обратиться ко мне с вопросами о приобретении программных продуктов компании «Простой Софт».

 

С Уважением,

Ольга Абрамова

olga.a@simple-soft.ru

До скорых встреч!

 


В избранное