trigger verifica nomerepetido
Estou usando firebird 2.0 e ibexpert, delphi 7 e componentes da paleta interbase, porem preciso criar uma trigger para verificar a existencia de nomes repetidos antes do insert no banco de dados. Isso e para evitar que registrem nomes duplicados. Criei este codigo no ibexpert: (esta dando erro no ultimo end)
nome da trigger: TRG_REGISREPETIDO
tabela: TABCADASTRO
position: 0 (zero)
is active: marcado (v)
type: before
insert: marcado (v)
update: desmarcado ()
delete: desmarcado ()
as
begin
if (exists
(select NOMECOMPLETO from TABCADASTRO
where NOMECOMPLETO = NEW.NOMECOMPLETO)) then
exception REGISREPETIDOend; <----aqui gera uma linha vermelha e nao compila
Peguei este exemplo para me auxiliar:
(Faz o mesmo procedimento que preciso)
create exception NOME_CLIENTE_JA_EXISTE
'NOME_CLIENTE_JA_EXISTE';
set term # ;create trigger INSERT_NOME_CLIENTE for CLIENTES
before insert
as
begin
if (exists
(select NOME_CLIENTE from CLIENTES
where NOME_CLIENTE=NEW.NOME_CLIENTE)) then
exception NOME_CLIENTE_JA_EXISTE;end #
set term ; #
Aqui esta a procedure no delphi que cria a excecao:
procedure TDM.cds_clientesReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction);
const
ErClienteExiste = 'NOME_CLIENTE_JA_EXISTE';
Mensagem = 'O nome "<b>%s</b>" já existe no banco de dados!';
begin
if pos(ErClienteExiste,E.Message)>0 then
Messagedlg(Format(Mensagem,[cds_clientesNOME_CLIENTE.asstring]),mtinformation,[mbok],0);
(trate os erros de ForeignKey aqui)
end;
O que estou errando?
Aguardo resposta.
Discussão (2)
Carregando comentários...