[firebase-br] Stored procedures
RedDevil
reddevil.fdb em gmail.com
Sex Abr 7 12:25:27 -03 2006
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
Mais detalhes sobre a lista de discussão lista