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
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
Curtir tópico
+ 0
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...
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
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
Clique aqui para fazer login e interagir na Comunidade :)