[firebase-br] Stored procedures
Edson Marco Ferrari Junior
edmafer em gmail.com
Sex Abr 7 12:48:54 -03 2006
valeu!
Realmente estava faltando o suspend. Colocando ele no final da
procedure resolveu o meu problema!
On 4/7/06, RedDevil <reddevil.fdb em gmail.com> wrote:
> create procedure sp_save_cliente(va_cli_nome varchar(25))
> returns(
> vcli_id integer
> )
> as
> begin
> /*
> * Preciso do id do cliente, caso ele não
> * esteja cadastrado, vou cadastrá-lo.
> */
>
> vcli_id = null;
>
> select cli_id
> from cliente
> where cli_nome = :va_cli_nome
> into :vcli_id;
>
> if (:vcli_id is not null) then
> suspend;
>
> insert into cliente( "campo", "campo", cli_nome)
> values (0, 0, :va_cli_nome);
>
> select cli_id
> from cliente
> where cli_nome = :va_cli_nome
> into :vcli_id;
>
> suspend;
>
> end
>
>
>
> ----- Original Message -----
> From: "Edson Marco Ferrari Junior" <edmafer em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, April 07, 2006 10:35 AM
> Subject: [firebase-br] Stored procedures
>
>
> Estou tentando criar algumas procedures que primeiro verifique se
> existo o registro na tabela, e se existir ela me retorna o id, caso
> contrário, ela faz a inserção, e me retorna o id.
>
> O problema, é que ela fazendo ou não a inserção (a inserção funciona)
> ela sempre me retorna "null".
>
> A procedure:
>
> create procedure sp_save_cliente(va_cli_nome varchar(25))
> returns(
> vcli_id integer
> )
> as
> begin
> /*
> * Preciso do id do cliente, caso ele não
> * esteja cadastrado, vou cadastrá-lo.
> */
> vcli_id = null;
>
> select cli_id
> from cliente
> where cli_nome = :va_cli_nome
> into
> :vcli_id;
>
> if (vcli_id is null) then
> begin
> insert into cliente
> values
> (
> 0,
> 0,
> :va_cli_nome
> );
>
> select max(cli_id)
> from cliente
> into
> :vcli_id;
> end
> end;
>
> E a chamo da seguinte forma:
>
> select vcli_id from sp_save_cliente ('NOME DO CLIENTE');
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
/*
* Edson Marco Ferrari Junior
* edmafer em gmail.com
* http://www.itasoa.com.br (no dia que funcionar eu aviso)
*/
Mais detalhes sobre a lista de discussão lista