GARANTIR DESCONTO

Fórum Trigger ??? #206306

14/01/2004

0

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

Responder

Posts

14/01/2004

Anorex

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

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


Responder

Gostei + 0

14/01/2004

Maurício Santos

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


Responder

Gostei + 0

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

Aceitar