![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Trigger [D7, IB6.x]
ss300 © (2004-05-17 07:09:00)дарова мастера..
есть табличка Registr
поля
status и status_str
как написать тирггер чтобы при инсерте в поле status
выполнялся вот такое услови
если status=1 то status_str = 'один'
........................ два
и т.д.
заранее благодарен
ss300 (2004-05-17 08:58:00) [1]я оказ-ся скобку забыл в IF (...)
спасибо что откликнулись
Andriano (2004-05-17 08:26:00) [2]И дополню:
изначально такое решение - хранить "один" напротив 1, "два" напротив 2 и т.д. - неверно. Для этого есть ВСЕ средства на клиенте.
Sergey13 (2004-05-17 08:16:00) [3]2ss300 ©
А может повежливее надо?
Вместо своего UPDATE сделай просто NEW.STATUS_STR = 'один' и тригер не афтер а бифоре.
ss300 (2004-05-17 07:21:00) [4]слушай, чувак а может изначально что то надо присвоить в переменную NEW.status ?
Mike Kouzmine (2004-05-17 07:17:00) [5]Врешь. Ничего ты не пробовал или не то пробовал.
ss300 (2004-05-17 07:16:00) [6]пробовал.. но эта падла не перестает ругаться:)
Mike Kouzmine (2004-05-17 07:14:00) [7]А ты почитай где NEW доступно. Может в бефоре, а не афтер?
ss300 (2004-05-17 07:10:00) [8]это не работает! на NEW ругается, почему? - ф.з.
CREATE TRIGGER REGISTR_DOC_AI0 FOR REGISTR_DOC
ACTIVE AFTER INSERT POSITION 0
AS
begin
/* Trigger text */
IF NEW.status = '1' THEN
BEGIN
UPDATE registr_doc SET STATUS_STR = 'один' where NUMBERDOC = NEW.numberdoc;
END
end