[firebase-br] Stored procedure inserção com commit?

Daniel Sonda daniel em mhnet.com.br
Qua Fev 11 09:33:38 -03 2009


Tente assim:

if exists(SELECT NumeroSerie FROM TB_Aparelho WHERE NumeroSerie = :NumeroSerie) then 
begin
  ...
end

Att.

Daniel Sonda
www.h2jsolucoes.com.br



Marcelo Guilherme Tamanini escreveu:
> Bom dia,
> pessoal.
>
> Eu fiquei procurando na internet sobre o uso de begin, commit e rollback transaction dentro de uma stored procedure e pelo que entendi, a partir do firebird 2.0, foi incluído esse comandos. E eu estou utilizando a versão 2.1!
> No fim, estou tentando montar uma stored procedure para inserção com esses comandos, mas está gerando erro logo na 2ª linha, logo no IF, "parsing error". Será que alguém poderia me ajudar a corrigir?
> Segue o código:
> BEGIN
>   if (SELECT COUNT(NumeroSerie) TB_Aparelho WHERE NumeroSerie = :NumeroSerie) = 0 then       
>   BEGIN
>   BEGIN TRANSACTION
>   INSERT INTO TB_Aparelho (NumeroSerie, DataColeta, Descricao 
>   , Senha, Leitura, CorrecaoTemperatura, AlarmeQualidade1)
>   VALUES (:NumeroSerie, :DataColeta, :Descricao, :Senha, :Leitura
>   , :CorrecaoTemperatura, :AlarmeQualidade1)
>   RETURNING CodAparelho
>   INTO :Identity;
>   COMMIT TRANSACTION
>   END
>   ELSE
>   BEGIN
>   EXCEPTION EQUIPAMENTO_EXISTENTE;
>   SUSPEND;
>   END
> END
>
>
>
> _________________________________________________________________
> Connect to the next generation of MSN Messenger 
> http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline
> ______________________________________________
> 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