Вниз
Скачать: CL | DM;

Firebird, execute procedure   Найти похожие ветки 

← →
Sheriff   (2004-08-30 15:49) [0]

Здарвствуйте. помогите разобраться с проблемой.
Попытка скомпилировать триггер вызывает ошибку:
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

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


← →
Reindeer Moss Eater ©   (2004-08-30 15:53) [1]

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


← →
Sheriff   (2004-08-30 15:59) [2]

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


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

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


← →
Sheriff   (2004-08-30 16:09) [4]

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


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

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


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

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


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

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


← →
Sheriff   (2004-08-30 16:28) [8]

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


← →
guest_Dmitry   (2004-08-30 16:42) [9]

>parameter mismatch for procedure

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


← →
guest_Dmitry   (2004-08-30 16:51) [10]

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

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


← →
TohaNik ©   (2004-08-30 16:53) [11]

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



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
14-1094554728
Gorlum
2004-09-07 14:58
2004.09.26
Adobe Photoshop7


1-1095005525
Aspartak
2004-09-12 20:12
2004.09.26
К какому типу данных относятся (+, -, /, *) ?


3-1093463113
S@shka
2004-08-25 23:45
2004.09.26
Объсните разницу триггеров Before и After


14-1094810498
olookin
2004-09-10 14:01
2004.09.26
Есть ли термин?


1-1094676387
Паша555
2004-09-09 00:46
2004.09.26
Узнать Дату




   Наверх