powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает триггер
7 сообщений из 7, страница 1 из 1
Не работает триггер
    #32087945
gray_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите где ошибка?

create trigger AIGSM for GSM
active
after insert
as
declare variable vall_old integer;
begin
select VALL from AZSTANKS
where (AFS_ID=NEW.AFS_ID) and (PRODCODE=NEW.PRODCODE)
INTO :vall_old;
update AZSTANKS set VALL=(vall_old+NEW.VALL), DATA='now'
where AFS_ID=NEW.AFS_ID and PRODCODE=NEW.PRODCODE;
end;
Говрит вот что
Dynamic SQL Error
SQL error code = -104
Token unknown - line 9, char 10
?
Ругается на into.
...
Рейтинг: 0 / 0
Не работает триггер
    #32088062
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а у тебя запрос
select VALL from AZSTANKS
where (AFS_ID=NEW.AFS_ID) and (PRODCODE=NEW.PRODCODE)

сколько записей возвращает???
...
Рейтинг: 0 / 0
Не работает триггер
    #32088066
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Перед для отделения имён переменных от имён полей перед ними необходимо ставить двоеточие или знак вопроса в командах, где такая неоднозначность может наблюдаться.
update AZSTANKS set VALL=(:vall_old+NEW.VALL), DATA='now' ...
...
Рейтинг: 0 / 0
Не работает триггер
    #32088093
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему тогда ругается га INTO?
...
Рейтинг: 0 / 0
Не работает триггер
    #32088096
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<А почему тогда ругается га INTO?

Это он пошутил :-)))))
...
Рейтинг: 0 / 0
Не работает триггер
    #32088107
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про двоеточие это верно, лучше его поставить, чтобы потом не иметь лишних проблем...

P.S.
Ну и шуточки у вас...
...
Рейтинг: 0 / 0
Не работает триггер
    #32088377
gray_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело было именно в двоеточии. После того как написал
create trigger AIGSM for GSM
active
after insert
as
declare variable vall_old integer;
begin
select VALL from AZSTANKS
where (AFS_ID=NEW.AFS_ID) and (PRODCODE=NEW.PRODCODE)
INTO vall_old; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
update AZSTANKS set VALL=(vall_old+NEW.VALL), DATA='now'
where AFS_ID=NEW.AFS_ID and PRODCODE=NEW.PRODCODE;
end;
всё заработало.
Вообще бред какой-то. Во всей литературе и хелпе рекомендуют ставить двлеточие а тут такая лажа. Даже обидно :-/.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не работает триггер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]