Problemas com Generator e Trigger, alguém ?

Delphi

02/04/2003

Resolvir a fazer incremento com Generator e triggers mais não está dando certo,

criei o Generator:
Ger_Cod_empresa

Criei uma Trigger:
CREATE TRIGGER GER_COD_EMPRESA FOR EMPRESA ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CODIGO IS NULL) THEN
NEW.CODIGO = GEN_ID(GER_COD_EMPRESA, 1);
END


uso DBexpress, SQLDataset DataSetProvider com ClienteDataSet, tenho que executar a trigger ? ou o interbase se encarrega disso ?

Como faço para minha aplicação pegar o código gerado pelo generator ?

Obrigada pela atenção !

[]´s

Renata Coimbra


Anonymous

Anonymous

Curtidas 0

Respostas

Hatrix

Hatrix

02/04/2003

Olha, o interbase se encarrega de executar a trigger automaticamente, mas para pegar o código que ele acabou de criar eu não sei muito bem, mas tenta o seguinte:

ClientDataSet.Append;
Edit1.Text := inttostr(ClientDataset.Codigo.AsInteger);


GOSTEI 0
Anonymous

Anonymous

02/04/2003

Está quase tudo certo, o Interbase se encarrega de pegar o proximo codigo do Generator e executar a trigger, eu acho que o problema no seu caso foi ter colocado se new.codigo is null. Caso vc queira mesmo utilizar dessa forma, ou seja, só procurar o proximo codigo na inserção se for = nulo, preste atenção se o seu fonte no Delphi não está jogando algum valor nele.
Qualquer duvida, meu email é angelalrn@bol.com.br

CREATE TRIGGER GER_COD_EMPRESA FOR EMPRESA ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
NEW.CODIGO = GEN_ID(GER_COD_EMPRESA, 1);
END


GOSTEI 0
POSTAR