GARANTIR DESCONTO

Fórum Problemas com Trigger para campo auto-incremento. #40608

05/12/2003

0

Estou usando essa trigger para cirar um campo auto-incrementável. Porém no momento que eu vou salvar o registro e o campo não possuir algum valor, o registro não é salvo e a trigger não é executada.

Trigger utilizada:
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER ´CLIENTESGENERATOR´ FOR ´CLIENTES´
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
IF (NEW.CLICOD IS NULL OR NEW.CLICOD = 0)
THEN NEW.CLICOD = GEN_ID(Clientes_CLICOD_Gen, 1);
END
^

COMMIT WORK ^
SET TERM ;^


Se alguém puder me ajudar. Obrigado.


Lefarr

Lefarr

Responder

Posts

05/12/2003

Lefarr

Também tentei essa trigger, mas também não funcionou.

SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER TRIG_GEN_OFRECIMIENTOS FOR OFRECIMIENTOS
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.NUM_OFRECIMIENTO = GEN_ID (GEN_OFRECIMIENTOS,1);
END
^

COMMIT WORK ^
SET TERM ;^


Responder

Gostei + 0

05/12/2003

Afarias

isso já foi bastante discutido neste fórum. A trigger é executada no servidor -- então, 1) se seu campo está como REQUIRED=TRUE então o ´cliente´ (componente DataSet) não vai deixar vc postar o registro (jogue algo no campo, como 0 ou coloque como required = False) -- e 2) como a trigger vai executar no servidor, não tem como o ´cliente´ saber o valor gerado, a nào ser q vc execute a query novamente.

Faça uma pesquisa em GENERATOR neste fórum e verá todas as dicas e mensagens a respeito.

TRIGGERS NÃO SÃO UMA BOA OPÇÃO PARA CAMPOS AUTO-INCREMENTO NA MAIOR PARTE DOS CASOS!!!

Vc pode usar os generators ´pelo cliente´ com um SQL como::

SELECT GEN_ID(nome_generator,1) FROM RDB$DATABASE


faça a consulta no fórum para ter mais detalhes.


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar