![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#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. |
![]() |
![]() |
![]() |
#2 |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
![]()
Подходил к преподу, в общем, недопонял (чувствовал ведь, что что-то не так). Задание осталось тем же, только вот умножения суммы сделки с количеством строкисделки делать не надо.
Вот код Код:
------------------------------
Ум без разума –это беда! |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
![]()
что за ошибка?
Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
![]()
Что такое идешник? Я не понял этого сокращения!
Цитата:
Код:
Перевод: Код:
CREATE TRIGGER PRZ FOR SDELKA, то хорошего тоже мало. Естественно будет выдаваться ошибка на Код:
------------------------------
Ум без разума –это беда! |
|
![]() |
![]() |
![]() |
#5 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
![]() Цитата:
Я должен обработать только последний кортеж введенный в таблицу, касающийся только определенного товара. врянтов кроме 'приход'=new.tipdokumenta у меня нет... ![]()
------------------------------
Ум без разума –это беда! |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
![]()
veter_s_morya
я бы сделал вот так Код:
|
![]() |
![]() |
![]() |
#8 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
![]() Цитата:
------------------------------
Ум без разума –это беда! |
|
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
![]()
я тебе не про процедуру, а про
Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
ФорумчанинДжуниор
Регистрация: 05.05.2008
Сообщений: 606
|
![]() Цитата:
------------------------------
Ум без разума –это беда! |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
триггер..плиз | zinnyrik | БД в Delphi | 4 | 21.05.2007 16:08 |
Триггер? | yulia | БД в Delphi | 9 | 12.05.2007 15:03 |