Generator Firebird

(system) #1

Como disparar um generator do firebird ao usar o auto incremento (automatico) do sc?

(system) #2

Moderador ressuscitei o tópico pq está aberto :slight_smile:

set term !;
create trigger tg_codigocliente for cad_clientes
active after insert
as
begin
Gen_Id(gen_clientes,1);
end !
set term;!

em outros casos via stored procedure:

set term ||;
create procedure proc_codigopedido
returns (codigopedido integer)
as
begin
codigopedido=gen_id(gen_pedidos,1);
end ||
set term;||

(system) #3

Cd0
vc postou como criar um gatilho ou procedimento dentro do firebird
Como disparar um generator do firebird ao usar o auto incremento (automatico) do sc?
Na época eu não entendia perfeitamente a diferença entre auto incremento (automatico), auto incremento (manual) e calculado pelo banco de dados.
Assim sendo, quando crio o gerador e o gatilho dentro do firebird escolho a opção calculado pelo banco de dados no SC
Quando crio apenas o gerador no firebird uso a opção autoincremento automatico e coloco o nome do gerador no SC
e quando não crio generator e trigger no firebird uso a opção autoincremento (manual) no SC

Gostaria de usar a combinação Generator + trigger no Firebird junto com select gen_id(gen_clientes_id, 0) from rdb$database para mostrar no formulario o valor atual do gerador, tem alguma sugestão?