[firebase-br] Stored procedure que retorna o ID após inserir
Joao Batista Santos
mrjbs em ig.com.br
Ter Fev 10 20:46:42 -03 2009
Opa Marcelo
Não se incomode com demora.
Bom mesmo é ter o resultado -
velocidade só para o processamento
obrigado rapaz
2009/2/10 Marcelo Guilherme Tamanini <marcelo_tamanini em hotmail.com>
>
> Desculpa pela demora João.
> Estava fazendo os testes ainda, mas aqui funcionou corretamente, só estou
> querendo ver como retornar um sqlcode, caso ocorra qualquer tipo de erro.
>
> Seque o código abaixo:
> CREATE OR ALTER PROCEDURE STP_INCLUIRAPARELHO (
> numeroserie integer,
> datacoleta timestamp,
> descricao varchar(50) character set win1252,
> senha smallint,
> alarmequalidade1 decimal(4,3),
> alarmequalidade2 decimal(4,2),
> alarmetemperatura decimal(4,1),
> leitura logico = 0,
> correcaotemperatura logico = 0,
> beepadvertencia logico = 0,
> beepalarme logico = 0,
> beepteclado logico = 0)
> returns (
> identity integer)
> as
> BEGIN
> BEGIN
> INSERT INTO TB_Aparelho (NumeroSerie, DataColeta, Descricao
> , Senha, Leitura, CorrecaoTemperatura, AlarmeQualidade1
> , AlarmeQualidade2, AlarmeTemperatura
> , BeepAdvertencia, BeepAlarme, BeepTeclado)
> VALUES (:NumeroSerie, :DataColeta, :Descricao, :Senha, :Leitura
> , :CorrecaoTemperatura, :AlarmeQualidade1, :AlarmeQualidade2
> , :AlarmeTemperatura, :BeepAdvertencia, :BeepAlarme, :BeepTeclado)
> RETURNING CodAparelho
> INTO :Identity;
> WHEN SQLCODE -830 DO
> EXCEPTION EQUIPAMENTO_EXISTENTE;
> END
> SUSPEND;
> END
>
>
>
> > Date: Tue, 10 Feb 2009 11:19:50 -0200
> > From: mrjbs em ig.com.br
> > To: lista em firebase.com.br
> > Subject: Re: [firebase-br] Stored procedure que retorna o ID após
> inserir
> >
> > Marcelo:
> > Esta "receita" serve para 1.5 tb?
> > pq eu teste so que não grava
> > dando o erro abaixo:
> > Invalid token.
> > Dynamic SQL Error.
> > SQL error code = -104.
> > Token unknown - line 8, char 3.
> > returning_values.
> >
> > 2009/2/9 Marcelo Guilherme Tamanini <marcelo_tamanini em hotmail.com>
> >
> > >
> > >
> > > Olá, pessoal.
> > >
> > > Mais uma dúvida sobre stored procedure.
> > >
> > > Eu tenho a seguinte stored procedure para inserção de dados em sql
> server:
> > >
> > > ...
> > > AS
> > > SET NOCOUNT ON
> > >
> > > -- Tenta inserir um equipamento
> > > BEGIN TRY
> > > BEGIN TRANSACTION
> > >
> > > INSERT INTO TB_Aparelho (NumeroSerie, DataColeta, Descricao)
> > > VALUES (@NumeroSerie, @DataColeta, @Descricao);
> > >
> > > -- Retorna o último CodAparelho
> > > SELECT @@IDENTITY FROM TB_Aparelho;
> > >
> > > COMMIT TRANSACTION
> > > END TRY
> > > BEGIN CATCH
> > > ROLLBACK TRANSACTION
> > >
> > > -- retorna o erro, caso já exista o equipamento
> > > SELECT -ERROR_NUMBER();
> > > END CATCH
> > >
> > >
> > > Em firebird, como ficaria o begin commit e rollback transaction no
> > > firebird?
> > > Além disso, como seria a sintaxe para retornar o ID do último registro?
> > > E por fim, retornar um exceção caso o registro já esteja cadastrado?
> > >
> > > _________________________________________________________________
> > > Invite your mail contacts to join your friends list with Windows Live
> > > Spaces. It's easy!
> > >
> > >
> http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us
> > > ______________________________________________
> > > 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
>
> _________________________________________________________________
> News, entertainment and everything you care about at Live.com. Get it now!
> http://www.live.com/getstarted.aspx
> ______________________________________________
> 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