Re: [firebase-br] Dúvidas

francisco gamarra francisco.gamarra em gmail.com
Ter Jul 18 16:45:49 -03 2006


Ao seu caso então se aplica o caso B como eu já imaginava.
Vc não deverá ter uma Trigger para esse caso.
A trigger se aplica no momento da gravação no banco, e nao no momento do
novo registro na aplicação.

meu conselho é:

//crie uma função q capture o valor do seu generator
function gen_id(GeneratorName : string; Inc : integer = 1) : integer;
begin

  //vc deve ter uma query pública para ativar suas consultas ou criala na
função
  query.sql.text :=
    'select gen_id(' + GeneratorName + ',' + IntToStr(Inc) + ') from
rdb$database';
  query.open;
  result := query.fields[0].asInteger;
  query.close;

end;

//com a função gen_id criada fica fácil. basta chamá-la no
//envento OnNewRecord do seu componente table ou componente de consulta

procedure tform1.table1OnNewRecord(sender : tObject);
begin
  table1.fieldbyname('cod').asInteger := gen_id('MeuGenerator');
end;



Mais detalhes sobre a lista de discussão lista