Problemas com Generator e Trigger, alguém ?
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
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
Curtidas 0
Respostas
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);
ClientDataSet.Append;
Edit1.Text := inttostr(ClientDataset.Codigo.AsInteger);
GOSTEI 0
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
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