[firebase-br] Stored procedure que retorna o ID após inserir
Marcelo Guilherme Tamanini
marcelo_tamanini em hotmail.com
Ter Fev 10 15:30:32 -03 2009
Ok, fiz aqui e deu certo.
Mas tem como pela procedure retornar um SQLCODE quando acontecer qualquer tipo de erro? Utilizando ou não exception?
Assim como eu faço no SQL SERVER:
SELECT ERROR_NUMBER();
> Date: Tue, 10 Feb 2009 10:05:17 -0200
> From: douglasht em gmail.com
> To: lista em firebase.com.br
> Subject: Re: [firebase-br] Stored procedure que retorna o ID após inserir
>
> 2009/2/10 Marcelo Guilherme Tamanini <marcelo_tamanini em hotmail.com>:
> > E como ficaria o select para pegar o novo ID inserido, logo após o insert:
>
> Você precisa de uma variável de saída:
> create procedure myProc
> returns (identity integer)
> ...
> Depois você usa o "insert returning".
> Assumindo que o nome do campo da chave primária é "id" e o parâmetro
> de saída é "identity":
>
> insert into tb_aparelho(campo) values (valor) returning id into :identity
>
> > E caso ocorra algum erro, como não conseguir inserir, pelo fato de já existir um mesmo registro, colocaria mais um BEGIN e END, logo após o select acima?
> > Ficando:
> > BEGIN
> > WHEN SQLCODE -830 DO
> > EXCEPTION cadastro_existente;
> > END
> > SUSPEND;
> > END
>
> Não lembro de cabeça se o código para violação de chave primária é
> -830. Mas a sintaxe parece correta.
>
> hth,
> --
> Douglas Tosi
> www.sinatica.com
>
> ______________________________________________
> 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
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
Mais detalhes sobre a lista de discussão lista