Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Вниз

Тригеры   Найти похожие ветки 

 
Paster   (2004-01-06 16:09) [0]

Есть процедура
CREATE PROCEDURE MatUpdate(OldFDaudz DOUBLE PRECISION, NewFDaudz DOUBLE PRECISION, Id_Mat INTEGER)
AS
BEGIN
UPDATE MATERIAL
SET MAT_FDAUDZ=MAT_FDAUDZ+(:NewFDaudz-:OldFDaudz)
WHERE ID_MAT=:ID_MAT;
END;

Она проходит без ошибок. Потом пытаюсь запустить тригер
CREATE TRIGGER SP_SAR_DELETE FOR SP_SAR
AFTER DELETE
AS BEGIN
EXECUTE PROCEDURE MatUpdate Old.SSar_FDaudz, 0, Id_Mat;
END;

Выдает ошибку General SQL error. Column unknown

Никак не могу понять в чем порблема. ПОмогите


 
Sandman25   (2004-01-06 16:11) [1]

EXECUTE PROCEDURE MatUpdate Old.SSar_FDaudz, 0, Id_Mat;

Откуда ему взять Id_Mat?


 
YuRock   (2004-01-06 16:12) [2]

Скорее всего, ошибка в запросе
UPDATE MATERIAL
SET MAT_FDAUDZ=MAT_FDAUDZ+(:NewFDaudz-:OldFDaudz)
WHERE ID_MAT=:ID_MAT


Может, MAT_FDAUDZ и/или ID_MAT нет?


 
Paster   (2004-01-06 16:16) [3]

Структура таблиц такая

CREATE TABLE SP_SAR
(
ID_SSAR INTEGER Not Null,
ID_MAT INTEGER,
SSAR_DAUDZ DOUBLE PRECISION,
SSAR_CENA DOUBLE PRECISION,
SSAR_FDAUDZ DOUBLE PRECISION,
PRIMARY KEY (ID_SSAR)
);

CREATE TABLE MATERIAL
(
ID_MAT INTEGER Not Null,
MAT_NUM VARCHAR(6),
MAT_NOS VARCHAR(50),
MAT_DAUDZ DOUBLE PRECISION,
MAT_FDAUDZ DOUBLE PRECISION,
MAT_CENA DOUBLE PRECISION,
PRIMARY KEY (ID_MAT)
);


 
Paster   (2004-01-06 16:23) [4]

У меня не получается создать тригер


 
Johnmen   (2004-01-06 16:32) [5]

А что по поводу Sandman25 © (06.01.04 16:11) ?


 
Paster   (2004-01-06 16:35) [6]

То Johnmen
Так в SP_Sar есть поле Id_Mat


 
Johnmen   (2004-01-06 16:36) [7]

>Paster (06.01.04 16:35) [6]

Намекаю :) - а поле Old.SSar_FDaudz есть ?


 
Sandman25   (2004-01-06 16:43) [8]

[7] Johnmen © (06.01.04 16:36)

Хороший намек :)


 
Paster   (2004-01-06 16:47) [9]

Если пробую Ssar_FDaudz ничего не меняет.

Просто для Inserta i Update нужни OLd i New

CREATE TRIGGER SP_SAR_UPDATE FOR SP_SAR
AFTER UPDATE
AS BEGIN
IF (Old.SSar_FDaudz<>New.SSar_FDaudz) THEN
EXECUTE PROCEDURE MatUpdate Old.SSar_FDaudz, New.SSar_FDaudz, Id_Mat;
END;


 
Sandman25   (2004-01-06 16:48) [10]

[9] Paster (06.01.04 16:47)

Напишите Old.Id_Mat вместо Id_Mat


 
Paster   (2004-01-06 16:50) [11]

Пробовал


 
Sandman25   (2004-01-06 16:51) [12]

И ругань сохранилась? Unknown column?
Почем на один столбец ругается, а на другой нет? Если оба есть в одной таблице, как Вы говорите...


 
Paster   (2004-01-06 16:52) [13]

Да, всё равно ругается... всё та же ошибка


 
Sandman25   (2004-01-06 16:54) [14]

CREATE TRIGGER SP_SAR_DELETE FOR SP_SAR
AFTER DELETE
AS BEGIN
EXECUTE PROCEDURE MatUpdate Old.SSar_FDaudz, 0, Old.Id_Mat;
END;

Так?


 
Paster   (2004-01-06 16:57) [15]

И так

CREATE TRIGGER SP_SAR_DELETE FOR SP_SAR
AFTER DELETE
AS BEGIN
EXECUTE PROCEDURE MatUpdate Old.SSar_FDaudz, 0, Old.Id_Mat;
END;

и так

CREATE TRIGGER SP_SAR_DELETE FOR SP_SAR
AFTER DELETE
AS BEGIN
EXECUTE PROCEDURE MatUpdate SSar_FDaudz, 0, Id_Mat;
END;

ничего не прокатывает


 
Sandman25   (2004-01-06 17:02) [16]

[15] Paster (06.01.04 16:57)

Жаль. Значит, моя версия не подтвердилась. Можно как-то узнать, какой именно Column? Там случайно не буква O вместо цифры 0 стоит?


 
Paster   (2004-01-06 17:02) [17]

после перезапуска системы всё заработало.
всем спасибо за помощь


 
Paster   (2004-01-06 17:04) [18]

Sandman25, не огорчайся, твой вариант как раз и заработал :)
хотя раньше почему-то не хотел


 
Sandman25   (2004-01-06 17:06) [19]

Ну слава богу...

PS. Я на IB последний раз работал лет 5 назад :)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
14-2307
Юрий Федоров
2004-01-07 22:16
2004.02.02
Нужно снять квартиру в Москве


6-2243
scr
2003-11-26 15:37
2004.02.02
TidSMTP (INDY) и прокси!


1-2159
Крутыш
2004-01-21 14:41
2004.02.02
Копирование модуля в одном проекте.


3-2022
666
2004-01-06 16:01
2004.02.02
dbgrid


14-2360
Тимохов
2004-01-09 19:35
2004.02.02
Вопрос по литературе по программированию.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский