[firebase-br] Criando Trigger
Mario Rodrigues
marioirodrigues em gmail.com
Qui Jun 26 17:13:22 -03 2008
Fale Gustavo,
Cara consegui criar bacana...porem quando tento lancar um emprestimo deu o
seguinte erro:
Error Message:
----------------------------------------
Overflow occurred during data type conversion.
conversion error from string "Disponivel".
At trigger '"TR-ATUALIZA_STATUS"' line: 21, col: 1.
O tipo de dados do campo status é string...qual o problema?
2008/6/26 Gustavo Moda <gustavo.moda em gmail.com>:
> ja existe essa trigger,
> use o create or alter trigger
>
> Sugestão: De nomes na trigger usando sulfixo e o nome da tabela
> Ex
> "TR_TBL_EMPRESTIMO-IUD_A0"
>
> p.s. A aspa dupla é necessário pq usei o caractere -
>
> Abraço
>
>
>
> CREATE TRIGGER ATUALIZA_status FOR tbl_emprestimo
> ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
> AS
> begin
> IF (INSERTING) THEN
> UPDATE tbl_cd
> SET tbl_cd.status = 'Emprestado'
> WHERE tbl_cd.id_cd = 'Disponivel';
> ELSE
> IF (DELETING) THEN
> UPDATE tbl_cd
> SET tbl_cd.status = 'Disponivel'
> WHERE tbl_cd.status = 'Emprestado';
> ELSE
> IF (UPDATING) THEN BEGIN
> UPDATE tbl_cd
> SET tbl_cd.status = 'Disponivel'
> WHERE
> tbl_cd.status = 'Emprestado';
> END
> end
>
> 2008/6/26 Mario Rodrigues <marioirodrigues em gmail.com>:
> > Salve a todos,
> >
> > To iniciando no mundo da programacao...dai o seguinte...to tentando criar
> > uma trigger q faça o seguinte...tenho um sistema de emprestimo de
> > cd...tbl_cd com id_cd, descricao e status(bem resumido)..tenho a
> > tbl_emprestimo onde é relacionada com o cd...blz...a trigger tem q fazer
> o
> > seguinte quando eu gravar o emprestimo a trigger muda o status do cd para
> > 'Emprestado'...dai fiz a seguinte trigger:
> > CREATE TRIGGER ATUALIZA_status FOR tbl_emprestimo
> > ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
> > AS
> > begin
> > IF (INSERTING) THEN
> > UPDATE tbl_cd
> > SET tbl_cd.status = 'Emprestado'
> > WHERE tbl_cd.id_cd = 'Disponivel';
> > ELSE
> > IF (DELETING) THEN
> > UPDATE tbl_cd
> > SET tbl_cd.status = 'Disponivel'
> > WHERE tbl_cd.status = 'Emprestado';
> > ELSE
> > IF (UPDATING) THEN BEGIN
> > UPDATE tbl_cd
> > SET tbl_cd.status = 'Disponivel'
> > WHERE
> > tbl_cd.status = 'Emprestado';
> > END
> > end
> >
> > Porem esta dando erro no momento da criação da trigger...esse erro:(uso o
> FB
> > 2.0 e o IBExpert)
> >
> > This operation is not defined for system tables.
> > unsuccessful metadata update.
> > DEFINE TRIGGER failed.
> > lock conflict on no wait transaction.
> > attempt to store duplicate value (visible to active transactions) in
> unique
> > index "RDB$INDEX_8".
> >
> > Alguem poderia me ajudar?
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista