Текущий архив: 2007.12.23;
Скачать: CL | DM;
ВнизКак создать генератор Найти похожие ветки
← →
Anti © (2007-08-14 23:37) [0]Создал генератор:
CREATE GENERATOR GenOrders;
к нему триггер:
CREATE TRIGGER NewOrder FOR Orders;
ACTIVE BEFORE INSERT POSITION 0
AS
begin
if (NEW.ID is NULL) then NEW.ID = gen_id(GenOrders,1);
end
где "Orders" название таблици, а "ID" поле с уникальным ключём.
Компьютер "ругается" не хочет создавать триггер в чём ошибка не пойму, подскажите. За ранее спасибо!!!
← →
Sergey13 © (2007-08-15 08:29) [1]> [0] Anti © (14.08.07 23:37)
> Компьютер "ругается"
Если матом, то можно вызвать милицию. 8-)
← →
Виталий Панасенко © (2007-08-15 10:28) [2]У меня то же ругается. Как думашь, что пишет? Не знаешь? Странно. Я думал он (компьтер) ругается одинаково.В любом случае. Ведь железяка все-таки
← →
Desdechado © (2007-08-15 10:47) [3]
> CREATE TRIGGER NewOrder FOR Orders;
Лишний выделенный разделитель.
← →
Romkin © (2007-08-15 14:41) [4]SET TERM нужен
← →
Виталий Панасенко(дом) (2007-08-15 14:45) [5]
> Romkin © (15.08.07 14:41) [4]
>
> SET TERM нужен
>
Откуда такая уверенность ?
← →
Anti © (2007-08-15 15:01) [6]может у кого-нибуть есть пример рабочего генератора
← →
Sergey13 © (2007-08-15 15:15) [7]> [6] Anti © (15.08.07 15:01)
А с чего ты взял, что у тебя не рабочий генератор?
ЗЫ: Может все таки начнешь нормально описывать проблему? Пытки тут редко применяют.
← →
Desdechado © (2007-08-15 15:27) [8]> Anti © (15.08.07 15:01) [6]
Ты читать научишься? Если не текст ошибки,то хотя бы ответы.
Я ж тебе написал, в чем у тебя косяк.
← →
tomkat (2007-08-15 16:18) [9]пример рабочего триггера :-)
CREATE TRIGGER DOCS_AIUD0 FOR DOCS
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
update list l
set l.suma=(select
sum(d.suma)
from docs d
where d.id_list=l.id );
end
← →
tomkat (2007-08-15 16:20) [10]вот еще точнее
SET SQL DIALECT 3;
SET NAMES WIN1251;
SET TERM ^ ;
CREATE TRIGGER DOCS_AIUD0 FOR DOCS
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
update list l
set l.suma=(select
sum(d.suma)
from docs d
where d.id_list=l.id );
end
^
SET TERM ; ^
← →
Виталий Панасенко(дом) (2007-08-15 21:45) [11]
> tomkat (15.08.07 16:20) [10]
>
> вот еще точнее
Ха, а если у меня диалект - 1?!!! И кодовая страница не такая ?!!
← →
Вася Правильный (2007-08-15 22:02) [12]
> Виталий Панасенко(дом) (15.08.07 21:45) [11]
ага, и генератором там не пахнет
← →
tomkat (2007-08-16 10:37) [13]SET SQL DIALECT 1;
SET NAMES <другая_кодовая_страница>;
SET TERM ^ ;
CREATE TRIGGER DOCS_AIUD0 FOR DOCS
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
update list l
set l.suma=(select
sum(d.suma)
from docs d
where d.id_list=l.id );
end
^
SET TERM ; ^
← →
Sergey13 © (2007-08-16 10:46) [14]> [13] tomkat (16.08.07 10:37)
ОФТОП.
Три раза ты опубликовал свой тригер. Три раза я его посмотрел. И три раза не понял его смысла. 8-)
Зачем апдейтить ВСЮ таблицу LIST при изменении ОДНОЙ записи в DOCS? Можно подискутировать и о смысле существования самой таблицы с агрегатами из другой.
← →
tomkat (2007-08-16 10:54) [15]я не пытался донести смысл этого триггера, я пытался показать синтаксис скрипта создания ...
есть такая необходимость , обусловленная моей задачей....
Страницы: 1 вся ветка
Текущий архив: 2007.12.23;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.043 c