Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Firebird, execute procedure [D5, firebird 1.5]


Sheriff ©   (2004-08-30 15:49:00) 

Здарвствуйте. помогите разобраться с проблемой.
Попытка скомпилировать триггер вызывает ошибку:
Invalid token.
invalid request BLR at offset 46.
parameter mismatch for procedure CALCULATEVALUE.

CREATE TRIGGER TBL_INFO_AI0 FOR TBL_INFO
ACTIVE AFTER INSERT POSITION 0
AS
begin
execute procedure calculatevalue(new.parentid);
end

процедура работает правильно.
спасибо.


TohaNik   (2004-08-30 16:53:00) [1]

>да, процедура должна возвращать значение типа double precision.
Syntax EXECUTE PROCEDURE name [: param [, : param …]]
[RETURNING_VALUES : param [, : param …]];


guest_Dmitry   (2004-08-30 16:51:00) [2]

либо, если
>да, процедура должна возвращать значение типа double precision.

попробуй: select <value> from calculatevalue(new.parentid) into :<variable>;


guest_Dmitry   (2004-08-30 16:42:00) [3]

>parameter mismatch for procedure

такое исключение кажется поднимается когда не хватает (лишние) параметров для процедуры.


Sheriff   (2004-08-30 16:28:00) [4]

спасибо, буду еще повозиться...


Роман Снегирев   (2004-08-30 16:26:00) [5]

а я и тестировал у себя в IBExpert. Может у тебя база слегка похерилась, попробуй Backap\Restore


Sheriff   (2004-08-30 16:20:00) [6]

может это важно: разрабатываю базу в IBExpert 2004.08.11
вот там ошибка и проявляется.


Роман Снегирев   (2004-08-30 16:16:00) [7]

только что у себя тестировал, все работает


Sheriff   (2004-08-30 16:09:00) [8]

входной параметр типа integer, поле parentid типа integer.
да, процедура должна возвращать значение типа double precision.


Роман Снегирев   (2004-08-30 16:03:00) [9]

new в after insert есть разве?
new не используется только в тригерах Delete.
Вообще на первый взглад все должно работать, проверь тип данных передаваемого параметра


Sheriff   (2004-08-30 15:59:00) [10]

так ведь после вставки в поле (в буфере) уже есть новое значение. или я что-то путаю?
в книге Мир Interbase указано, что контекстная переменная new доступна в типе триггера after insert.


Reindeer Moss Eater   (2004-08-30 15:53:00) [11]

new в after insert есть разве?


Наверх

Титульная страница Поиск, карта сайта Написать письмо