|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.09.2008, 16:31 | #1 |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
триггер
Забодал меня тут один триггер. Никак не могу его написать. Базу задал мне препод написать на чистом sql. И дал программу IBExpert c Сервером Firebird 1.0.
Создать 3 таблицы: sdelka, strokasdelki, tovar. Вот мой код CREATE TABLE SDELKA ( NSDELKI VARCHAR(4) NOT NULL, SUMMA VARCHAR(20) NOT NULL, TIPDOKUMENTA VARCHAR(20) NOT NULL ); ALTER TABLE SDELKA ADD CONSTRAINT PK1 PRIMARY KEY (NSDELKI); CREATE TABLE STROKASDELKI ( NSTROKI VARCHAR(4) NOT NULL, NSDELKI VARCHAR(20) NOT NULL, NTOVARA VARCHAR(20) NOT NULL, KOLICHESTVO VARCHAR(20) NOT NULL ); ALTER TABLE STROKASDELKI ADD CONSTRAINT PK2 PRIMARY KEY (NSTROKI); ALTER TABLE STROKASDELKI ADD CONSTRAINT FK1 FOREIGN KEY (NSDELKI) REFERENCES SDELKA (NSDELKI); ALTER TABLE STROKASDELKI ADD CONSTRAINT FK2 FOREIGN KEY (NTOVARA) REFERENCES TOVAR (NTOVARA); CREATE TABLE TOVAR ( NTOVARA VARCHAR(4) NOT NULL, NAZVANIE VARCHAR(20) NOT NULL, CHENA VARCHAR(20) NOT NULL, OSTATOK VARCHAR(20) NOT NULL ); ALTER TABLE TOVAR ADD CONSTRAINT PK3 PRIMARY KEY (NTOVARA); А само задание, создать триггер, который увеличивает или уменьшает остаток в таблице TOVAR, в зависимости от типа документа в таблице SDELKA. Т.е если тип документа приходный, то остаток по конкретному товару увеличивается путем умножения суммы сделки с количеством строкисделки. А вот с расходом остаток уменьшается. (правда, все это звучит дико? Не знаю правильно ли звучит это с экономической стороны…но вот так. ) Вот набросок триггера… откомпилировался, а работать не хочет… Код:
------------------------------
Ум без разума –это беда! Последний раз редактировалось veter_s_morya; 21.09.2008 в 16:34. |
23.09.2008, 22:18 | #2 |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
Подходил к преподу, в общем, недопонял (чувствовал ведь, что что-то не так). Задание осталось тем же, только вот умножения суммы сделки с количеством строкисделки делать не надо.
Вот код Код:
------------------------------
Ум без разума –это беда! |
26.09.2008, 08:22 | #3 | |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
что за ошибка?
Цитата:
|
|
27.09.2008, 15:00 | #4 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
Что такое идешник? Я не понял этого сокращения!
Цитата:
Код:
Перевод: Код:
CREATE TRIGGER PRZ FOR SDELKA, то хорошего тоже мало. Естественно будет выдаваться ошибка на Код:
------------------------------
Ум без разума –это беда! |
|
27.09.2008, 16:10 | #5 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
|
|
27.09.2008, 19:44 | #6 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
Цитата:
Я должен обработать только последний кортеж введенный в таблицу, касающийся только определенного товара. врянтов кроме 'приход'=new.tipdokumenta у меня нет...
------------------------------
Ум без разума –это беда! |
|
28.09.2008, 17:05 | #7 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
veter_s_morya
я бы сделал вот так Код:
|
28.09.2008, 22:40 | #8 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
Цитата:
------------------------------
Ум без разума –это беда! |
|
29.09.2008, 07:17 | #9 | |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
я тебе не про процедуру, а про
Цитата:
|
|
05.10.2008, 20:48 | #10 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
Цитата:
------------------------------
Ум без разума –это беда! |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
триггер..плиз | zinnyrik | БД в Delphi | 4 | 21.05.2007 16:08 |
Триггер? | yulia | БД в Delphi | 9 | 12.05.2007 15:03 |