Trigger ???

Delphi

14/01/2004

Olá!!!

No Interbase OpenSource tenho o seguinte scrip SQL:

/* Criação da tabela de Categorias */

CREATE TABLE ´CATEGORIA´
(
´CODCATEGORIA´INTEGER NOT NULL,
´CATEGORIA´VARCHAR(50) NOT NULL,
PRIMARY KEY (´CODCATEGORIA´)


/* Indice */

CREATE INDEX ´INDCATEG´ ON ´CATEGORIA´(´CATEGORIA´);


/* Generator */

CREATE GENERATOR ´CODCATEG_GEN´;


/* Triggers */

SET TERM ^ ;

CREATE TRIGGER ´AUTO_NUM_CATEG´ FOR ´CATEGORIA´ ACTIVE BEFORE INSERT POSITION 0 AS
BEGIN
NEW.CODCATEGORIA=GEN_ID(CODCATEG_GEN, 1);
END
^
COMMIT WORK ^
SET TERM ;^

No Delphi tenho:

procedure TfrmCateg.btnGravarClick(Sender: TObject);
begin
if DataModule.ClientDataSet.State in [dsInsert] then
begin
DataModule.ClientDataSet.ApplyUpdates(-1);
end;
end;

Qundo clico no botão para gravar o registro é exibida a seguinte mensagem:

Field ´CODCATEGORIA´ must have a value.


Se eu criei o generator e a trigger, pq aparece essa mensagem ??? Usei as mesmas inrtruções em outras tabelas do meu projeto e esse erro não acontece !!!

Provavelmente o erro está na minha cara e eu não estou vendo.

Onde está o erro ???


Agradeço a ajuda te todos


Maurício Santos

Maurício Santos

Curtidas 0

Respostas

Anorex

Anorex

14/01/2004

como nosso colega disse é só vc passar qualquer valor...

eu uso os componentes IBX e não tenho este tipo de problema...


GOSTEI 0
Maurício Santos

Maurício Santos

14/01/2004

Olá!!!

Fiz o que me indicaram, correu tudo certinho, a trigger agora está gerando a numeração automática, mas ainda assim não estou satisfeito.

A própria trigger já informa ao IB que a variável utilizada como contador
é zero. Porque então eu tenho que informar isso no Delphi???

Porque nessa tabela eu tenho que fazer esse procedimento e nas outras eu não preciso?


Obrigado a todos


GOSTEI 0
POSTAR