Код: Выделить всё
AS
begin
generator gen_sapout_id value : '0';
end
Код: Выделить всё
AS
begin
generator gen_sapout_id value : '0';
end
Код: Выделить всё
begin
TEMPVAR = GEN_ID(gen_sapout_id, -GEN_ID(gen_sapout_id, 0));
suspend;
end
Код: Выделить всё
AS
begin
execute procedure pr_gen_nul;
end
ну потому что это вообще из ряда вон.А подсказать конкретно что не можешь?
там написано что в процедуре МОЖНО так написать. Но у IB/FB это язык процедур и триггеров. Да, я допишу, конечно, что можно так делать и в процедуре и в триггере.Тем более там как раз написано, что обнулять лучше через процедуру!
Ну и что?john_chek писал(а):Иначе через месяц работы значение генератора будет с пятью нулями!
Я вроде писал, что эта таблица используется для массива чисел, эти числа выводятся на печать! Если их потом не удалять то отчет с каждым разом будет расти и расти и тд и тп...Поэтому эти сотни записей мне не к чему!Ну и что?
Если у тебя всего-навсего несколько сот тысяч в месяц записей, то значений генератора хватит не менее чем на 100 лет.
Каждый раз проверяя значение генератора в триггере, ты замедлишь вставку записей на пару милисекунд, никакого другого эффекта не видать.
на клиентской части перед записью массива, выполняю запрос на удаление всех записей в таблице.не совсем понимаю, как ты там устроил
отнимает у значения генератора его значение, О чем впринципе я вас просил помочь.AS
declare variable I int;
begin
I = GEN_ID(gen_sapout_id, -GEN_ID(gen_sapout_id, 0));
end
kdv писал(а):то есть, триггер будет срабатывать при вставке КАЖДОЙ записи? Поздравляю!
кстати, как я понял, вставка записей однопользовательская?
не при вставке, а при удалении!при вставке КАЖДОЙ записи?