Como distarar um Trigrer...

Firebird

02/12/2005

_DM_INTERBASE.IBQuery1.database:= _DM_INTERBASE.IBDatabase1;
_DM_INTERBASE.IBQuery1.SQL.Clear;
_DM_INTERBASE.IBQuery1.SQL.Add(´BEFORE UPDATE TRIGGER CONTADOR_TRI FOR CONTADOR ACTIVE BEFORE INSERT POSITION 0 AS BEGIN NEW.CODIGO = GEN_ID(GEN_CONTADOR,1);END´);
_DM_INTERBASE.IBQuery1.ExecSQL;
_DM_INTERBASE.IBQuery1.SQL.Clear;


Max.sgj

Max.sgj

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

02/12/2005

a trigger (gatilho), se ativa, é disparada automaticamente pelo banco de dados. não é preciso intervenção humana.

essa é a sintaxe básica para criação de uma trigger:
CREATE TRIGGER nome_da_trigger FOR nome_da_tabela
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.nome_do_campo IS NULL) THEN
    NEW.nome_do_campo = GEN_ID(nome_do_generator,1);
END


nesse caso a trigger [i:38b8df89d4]nome_da_trigger[/i:38b8df89d4] será disparada automaticamente ao inserir um registro na tabela [i:38b8df89d4]nome_da_tabela[/i:38b8df89d4], sendo preenchido o campo [i:38b8df89d4]nome_do_campo[/i:38b8df89d4] com o valor do generator [i:38b8df89d4]nome_do_generator[/i:38b8df89d4] acrescido de 1, desde que o campo [i:38b8df89d4]nome_do_campo[/i:38b8df89d4] esteja nulo.


GOSTEI 0
Max.sgj

Max.sgj

02/12/2005

Eu gostaria de escolher o trigrer a ser utilizado...


GOSTEI 0
Gandalf.nho

Gandalf.nho

02/12/2005

Se vc quer disparar manualmente seu código, use uma Stored Procedure (SP) e não uma trigger.


GOSTEI 0
POSTAR