Вызов процедур ошибка параметров

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
lsn-syzran
Сообщения: 5
Зарегистрирован: 09 ноя 2005, 14:32

Вызов процедур ошибка параметров

Сообщение lsn-syzran » 25 ноя 2005, 11:01

Привет всем. Подскажите плиз такая проблема надо из одной процедуры вызвать другую и обработать полученный от нее результат. Текст вызываемой процедуры
CREATE PROCEDURE INSTABEL_DAY (
NEWTABELID INTEGER,
TABEL_DAYTYPEID INTEGER,
NUM INTEGER
) RETURNS (
ID INTEGER
) AS
begin
id = gen_id(gennewtabelday,1);
insert into tabel_day(id,newtabelid,tabel_daytypeid,num)
values(:id,:newtabelid,:tabel_daytypeid,:num);
suspend;
end


Вызываю из другой процедуры строкой вида:
select id from instabel_day(:id,:daytype,:daynum) into tabeldayid;

При компиляции процедуры из которой происходит вызов получаю ошибку :
erase rdb$procedure_parameters failed parameters mismatch for procedure instabel_day
Что делаю не так?

lsn-syzran
Сообщения: 5
Зарегистрирован: 09 ноя 2005, 14:32

Сообщение lsn-syzran » 25 ноя 2005, 11:32

Спасибо, нашел в чем проблема была. При изменении количества параметров в вызываемой процедуре, необходимо было из вызывающий удалить строку вызова, затем сохранить ее, а затем заново прописать строку вызова с добавленным параметром. По видимому какой то баг firebird а

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 ноя 2005, 12:25

По видимому какой то баг firebird
а ты как хотел, чтобы он тебе вообще запрещал модифицировать такие процедуры, или иначе? Давай идею, подумаем.

p.s. эта ситуация давно описана на сайте.

lsn-syzran
Сообщения: 5
Зарегистрирован: 09 ноя 2005, 14:32

Сообщение lsn-syzran » 25 ноя 2005, 13:20

как то не корректно получается. Если я изменил количество параметров в вызываемой процедуре, то я даже не могу удалить строку вызова этой процедуры из вызывающий проведуры. Сначала надо удалить все вызовы, потом менять параметры, потом только я могу изменить строку вызова процедуры.

lsn-syzran
Сообщения: 5
Зарегистрирован: 09 ноя 2005, 14:32

Сообщение lsn-syzran » 25 ноя 2005, 13:24

может действительно или запрещать редактирование таких процедур пока на нее есть вызов или предусмотреть какой то механизм который будет позвлолять менить строку вызова процедуры с изменившимися параметрами

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 25 ноя 2005, 14:05

lsn-syzran писал(а):может действительно или запрещать редактирование таких процедур пока на нее есть вызов или предусмотреть какой то механизм который будет позвлолять менить строку вызова процедуры с изменившимися параметрами
А ещё лучше не пудрить людям мозги, а указывать свою версию сервера. Чтобы сразу получить ответ, что в FB1.5 этот механизм уже предусмотрен.

Ответить