![ActiveDelphi - Índice do Fórum](templates/subSilver/images/logo_phpBB.gif) |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
LordeMorpheus Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Domingo, 7 de Março de 2010 Mensagens: 38
|
Enviada: Dom Ago 01, 2010 4:32 pm Assunto: Trigger definir valor em campo Status [RESOLVIDO] |
|
|
Olá a todos, utilizo banco de dados Firebird e quero disparar uma trigger que no momento do cadastro de um paciente, defina o status.
Para o campo status são aceitos dois valores: 0 para inativo e 1 para ativo.
No momento do cadastro o paciente vai estar ativo, ou seja, status=1...
Criei a seguinte trigger:
Código: | CREATE trigger status_paciente for pacientes
active after insert position 0
AS
BEGIN
IF (NEW.STATUS IS NULL) THEN
insert into pacientes (status) values (1);
END |
Mas não funcionou, o valor do campo status fica sempre 0...
Quem puder me dar uma ajuda agradeceria...
Até mais...
Editado pela última vez por LordeMorpheus em Qui Ago 05, 2010 2:03 pm, num total de 1 vez |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
BrunoMoreyra Colaborador
![Colaborador Colaborador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/colaborador.gif)
Registrado: Quinta-Feira, 26 de Novembro de 2009 Mensagens: 1398 Localização: Goiânia - GO / Brasília - DF
|
Enviada: Seg Ago 02, 2010 8:22 am Assunto: Re: Trigger definir valor em campo Status |
|
|
bom dia,
pelo o que eu entendi, você não precisará fazer uma inserção. Você terá que fazer uma alteração, pois o registro já foi inserido e você quer apenas alterar um campo da tabela.
Tente algo assim.
Código: |
CREATE trigger status_paciente for pacientes
active after insert position 0
AS
BEGIN
IF (NEW.STATUS IS NULL) THEN
Update Pacientes Set Status = 1
Where PacienteId = New.PacienteId;
END
|
LordeMorpheus escreveu: | Olá a todos, utilizo banco de dados Firebird e quero disparar uma trigger que no momento do cadastro de um paciente, defina o status.
Para o campo status são aceitos dois valores: 0 para inativo e 1 para ativo.
No momento do cadastro o paciente vai estar ativo, ou seja, status=1...
Criei a seguinte trigger:
Código: | CREATE trigger status_paciente for pacientes
active after insert position 0
AS
BEGIN
IF (NEW.STATUS IS NULL) THEN
insert into pacientes (status) values (1);
END |
Mas não funcionou, o valor do campo status fica sempre 0...
Quem puder me dar uma ajuda agradeceria...
Até mais... |
_________________ Atencisamente,
Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
LordeMorpheus Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Domingo, 7 de Março de 2010 Mensagens: 38
|
Enviada: Ter Ago 03, 2010 8:29 pm Assunto: Re: Trigger definir valor em campo Status |
|
|
BrunoMoreyra escreveu: | bom dia,
pelo o que eu entendi, você não precisará fazer uma inserção. Você terá que fazer uma alteração, pois o registro já foi inserido e você quer apenas alterar um campo da tabela.
Tente algo assim.
Código: |
CREATE trigger status_paciente for pacientes
active after insert position 0
AS
BEGIN
IF (NEW.STATUS IS NULL) THEN
Update Pacientes Set Status = 1
Where PacienteId = New.PacienteId;
END
|
|
Olá BrunoMoreyra,, obrigado pela atenção, você tem razão, mas ao tentar criar essa trigger o IBExpert retorna o seguinte erro:
This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE TRIGGER failed.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8".
O que pode ser?
Mais uma vez obrigado e até mais.. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
BrunoMoreyra Colaborador
![Colaborador Colaborador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/colaborador.gif)
Registrado: Quinta-Feira, 26 de Novembro de 2009 Mensagens: 1398 Localização: Goiânia - GO / Brasília - DF
|
Enviada: Ter Ago 03, 2010 10:15 pm Assunto: Re: Trigger definir valor em campo Status |
|
|
Boa noite,
agora de IBExpert eu não entendo, e essa mensagem não é familiar para mim.
Deve ter outras pessoas que possuem este conhecimento. LordeMorpheus escreveu: | BrunoMoreyra escreveu: | bom dia,
pelo o que eu entendi, você não precisará fazer uma inserção. Você terá que fazer uma alteração, pois o registro já foi inserido e você quer apenas alterar um campo da tabela.
Tente algo assim.
Código: |
CREATE trigger status_paciente for pacientes
active after insert position 0
AS
BEGIN
IF (NEW.STATUS IS NULL) THEN
Update Pacientes Set Status = 1
Where PacienteId = New.PacienteId;
END
|
|
Olá BrunoMoreyra,, obrigado pela atenção, você tem razão, mas ao tentar criar essa trigger o IBExpert retorna o seguinte erro:
This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE TRIGGER failed.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8".
O que pode ser?
Mais uma vez obrigado e até mais.. |
_________________ Atencisamente,
Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
LordeMorpheus Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Domingo, 7 de Março de 2010 Mensagens: 38
|
Enviada: Qui Ago 05, 2010 2:00 pm Assunto: Re: Trigger definir valor em campo Status |
|
|
BrunoMoreyra escreveu: | Boa noite,
agora de IBExpert eu não entendo, e essa mensagem não é familiar para mim.
Deve ter outras pessoas que possuem este conhecimento. LordeMorpheus escreveu: | BrunoMoreyra escreveu: | bom dia,
pelo o que eu entendi, você não precisará fazer uma inserção. Você terá que fazer uma alteração, pois o registro já foi inserido e você quer apenas alterar um campo da tabela.
Tente algo assim.
Código: |
CREATE trigger status_paciente for pacientes
active after insert position 0
AS
BEGIN
IF (NEW.STATUS IS NULL) THEN
Update Pacientes Set Status = 1
Where PacienteId = New.PacienteId;
END
|
|
Olá BrunoMoreyra,, obrigado pela atenção, você tem razão, mas ao tentar criar essa trigger o IBExpert retorna o seguinte erro:
This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE TRIGGER failed.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8".
O que pode ser?
Mais uma vez obrigado e até mais.. |
|
Olá BrunoMoreyra, foi estranho mas consegui. Eu apenas criei a trigger primeiro e depois inseri o código nela e gravei. Funcionou normalmente.
Era exatamente o que eu queria, mais uma vez muito obrigado...
Até mais... |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|