Ошибка при вызове процедуры "XSQLDA index out of range"
Добавлено: 11 мар 2012, 14:19
В базе создал процедуру
При отладке в IBExpert все проходит нормально. При вызове из программы с помощью компонента TpFIBStoredProc после команды ExecProc;
Помогите разобраться.
Код: Выделить всё
create or alter procedure GET_LAST_NUMBER
returns (
OUT_VAL integer)
as
declare variable I_REZ integer;
declare variable I_ORD integer;
declare variable I_SAL integer;
declare variable I_NUL integer;
begin
/* Находим максимальное значение номера резервов */
I_NUL = 0;
for select R_NUMDOC
from D_REZERVE
where ID_CODE > 0
into :I_REZ
do
begin
if (:I_NUL < :I_REZ) then
I_NUL = :I_REZ;
end
I_REZ = :I_NUL;
/* Находим максимальное значение номера продаж */
I_NUL = 0;
for select S_NUMDOC
from D_SALES
where ID_CODE > 0
into :I_SAL
do
begin
if (:I_NUL < :I_SAL) then
I_NUL = :I_SAL;
end
I_SAL = :I_NUL;
/* Находим максимальное значение номера заказов */
I_NUL = 0;
for select O_NUMDOC
from D_ORDER
where ID_CODE > 0
into :I_ORD
do
begin
if (:I_NUL < :I_ORD) then
I_NUL = :I_ORD;
end
I_ORD = :I_NUL;
/* Находим максимальное значение их всех номеров */
OUT_VAL = :I_REZ;
if (:OUT_VAL < :I_ORD) then
OUT_VAL = :I_ORD;
if (:OUT_VAL < :I_SAL) then
OUT_VAL = :I_SAL;
OUT_VAL = :OUT_VAL + 1;
suspend;
end
Помогите разобраться.