Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2012, 23:07   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию Postgre: пользовательские функции - создание сообщения

Здраствуйте, форумчане!
У меня такая проблема: пользовательская функция при составлении счета клиенту, уменьшает таблицу Склад на кол-во товара, что заказал клиент.
Теперь мне надо создать триггерную функцию, которая при обновлении таблицы Склад сообщает администратору о том, что данного товара (что купил клиент) осталось 3 штуки или меньше трех и необходимо заказать.
Я не очень хорошо понимаю - каким образом наладить диалог с пользователем. Ведь если бы у нас речь шла об ошибке, мы бы написали
Код:
RAISE EXCEPTION 'Tovar zakazat'
Но так как ошибки нет, он такую конструкцию с фразой IF FOUND THEN.... не хочет.

Я попробовала выкрутится через SELECT INTO

Код:
 
CREATE OR REPLACE FUNCTION info()
 ---- RETURNS "trigger" AS
 RETURNS text AS
$BODY$
DECLARE
quantity "tSklad"%ROWTYPE;
i text;
RESULT text;
BEGIN
i:='Etot tovar zakanchivaetsja na sklade. Neobhodimo zakazat!';
RESULT:='';
SELECT INTO quantity * FROM "tSklad" WHERE kolichestvo=3 OR  kolichestvo<3;
IF FOUND THEN
RETURN i;
END IF;
LOOP
RESULT:=RESULT||quantity.tovar_id||' '||quantity.kolichestvo;
END LOOP;
RETURN RESULT;
END; $BODY$
  LANGUAGE 'plpgsql';
Так он тоже цепляется и не хочет выводить список товаров и сообщение.
А как вообще грамотно можно наладить обмен информационными сообщениями? В Интернете я не нашла ни одного вразумительного примера. Вроде и проблема-то копеечная, но что-то самой никак.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 14.01.2012, 13:41   #2
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Лучше всего, заведите таблицу, в которую будете записывать сообщения из триггера во время какой-либо операции, а после завершения операции, на стороне клиента, проверяйте, появились ли записи связанные с этой операцией в таблице, если появились, покажете их...
Rik вне форума Ответить с цитированием
Старый 17.01.2012, 02:50   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Ага, спасибо)) Я уже до подобного решения сама дошла))
Но все равно большое Вам благодарю))))
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пользовательские функции в MySQL kuzjma SQL, базы данных 2 07.12.2011 11:53
Создание шаблона Outlook сообщения и отправка его по почте avos002 Microsoft Office Excel 2 25.01.2011 08:18
Пользовательские функции в Excel Elfix Microsoft Office Excel 13 28.10.2009 08:25
как разорвать ЭТИ связи и удалить пользовательские функции StasSv Microsoft Office Excel 3 25.06.2009 17:41
* Пользовательские процедуры и функции DJ Kost Помощь студентам 2 17.12.2008 16:55