Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.013 c
15-1195568459
tesseract
2007-11-20 17:20
2007.12.23
Говорил же. Учите с под Linux.


2-1196365354
Свой
2007-11-29 22:42
2007.12.23
Ttable и поля Memo и DataSetPageProducer и поля Memo


2-1196251452
webpauk
2007-11-28 15:04
2007.12.23
Закрытие приложения


3-1187101224
boriss_
2007-08-14 18:20
2007.12.23
Выбор данных посредством Хранимой процедуры в Oracle


2-1196486249
Ravshan
2007-12-01 08:17
2007.12.23
Как можна скопировать структуру и данные из формата dbf на Oracle