[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