[firebase-br] RES: Retorno apos insert com procedure

Rodrigo A. de Freitas rodrigo em solucoeseinformatica.com.br
Qua Set 12 16:05:50 -03 2007


Olá Alessandro!

No FB 2.0, você não precisa criar uma procedure para isso, se o intuito é
retornar o ID do seu registro. Basta usar o INSERT com a cláusula RETURNING:

INSERT INTO TABELA (CAMPO1, CAMPO2 ... CAMPON)
VALUES ('A', 'B', .... 'Z')
RETURNING (ID);

O código acima funciona se, por exemplo, o campo ID da tabela for atualizado
via trigger; Lembrando que a cláusula RETURNING NÃO funciona dentro de uma
stored procedure.

Caso você queria apenas retornar um valor qualquer dentro de uma SP, basta
definir os campos de retorno e utilizar o comando SUSPEND, assim:

CREATE PROCEDURE TESTE (
  CAMPO1 VARCHAR(1), 
  CAMPO2 VARCHAR(1)
)
RETURNS (
   ID INTEGER
)
AS
BEGIN
   ID = GEN_ID(MEU_GENERATOR, 1);

   INSERT INTO TABELA (ID, CAMPO1, CAMPO2)
   VALUES (:ID, :CAMPO1, :CAMPO2);

   SUSPEND;
END

[]'s

Rodrigo A. de Freitas
Soluções & Informática

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Alessandro Francisco
Enviada em: quarta-feira, 12 de setembro de 2007 14:44
Para: lista em firebase.com.br
Assunto: [firebase-br] Retorno apos insert com procedure


Gente, ultimamente eu ando fazendo umas perguntas nb's mas eh porque fiquei
um tempo afastado do FB e acabei esquecendo muita coisa, então tenham
paciência por favor... xD
 
Seguinte
 
 
Eu tenho uma procedure que faz um insert e gostaria que essa procedure
retorna-se pra mim qual o código que foi gerado, eu estou usando o FB 2.x e
sei que tem como fazer isso mas não lembro como.
 
Grato
 
Alessandro
 
Abaixo segue codigo da procedure:
 
CREATE PROCEDURE TB_PESSOAS_I(  PES_CNPJ_CPF VARCHAR(20) CHARACTER SET
WIN1250,  PES_IE_RG VARCHAR(20) CHARACTER SET WIN1250,  PES_NOME
VARCHAR(100) CHARACTER SET WIN1250,  PES_RUA VARCHAR(100) CHARACTER SET
WIN1250,  PES_BAIRRO VARCHAR(100) CHARACTER SET WIN1250,  PES_CIDADE
VARCHAR(100) CHARACTER SET WIN1250,  PES_ESTADO VARCHAR(100) CHARACTER SET
WIN1250,  PES_CEP VARCHAR(20) CHARACTER SET WIN1250,  PES_TELEFONE
VARCHAR(20) CHARACTER SET WIN1250,  PES_FAX VARCHAR(20) CHARACTER SET
WIN1250,  PES_CONTATO VARCHAR(100) CHARACTER SET WIN1250,  PES_EMAIL
VARCHAR(100) CHARACTER SET WIN1250,  PES_TIPO VARCHAR(20) CHARACTER SET
WIN1250,  PES_OBS VARCHAR(1000) CHARACTER SET WIN1250)ASbegin  insert into
tb_pessoas (    pes_cnpj_cpf,    pes_ie_rg,    pes_nome,    pes_rua,
pes_bairro,    pes_cidade,    pes_estado,    pes_cep,    pes_telefone,
pes_fax,    pes_contato,    pes_email,    pes_tipo,    pes_obs)  values (
upper(:pes_cnpj_cpf),    upper(:pes_ie_rg),    upper(:pes_nome),
upper(:pes_rua),    upper(:pes_bairro),    upper(:pes_cidade),
upper(:pes_estado),    upper(:pes_cep),    upper(:pes_telefone),
upper(:pes_fax),    upper(:pes_contato),    lower(:pes_email),
upper(:pes_tipo),    upper(:pes_obs));end
_________________________________________________________________
Receba as últimas notícias do Brasil e do mundo direto no seu Messenger com
Alertas MSN! É GRÁTIS!
http://alertas.br.msn.com/
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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



-- 
No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.485 / Virus Database: 269.13.14/999 - Release Date: 10/9/2007
17:43





Mais detalhes sobre a lista de discussão lista