[firebase-br] Declare Procedure - Variable

Marcos R. Weimer marcosweimer em gmail.com
Terça Março 23 10:55:26 -03 2021


Olá Cantu!

fazer mais ou menos assim:

CREATE OR ALTER PROCEDURE prc_teste
AS
  DECLARE VARIABLE var1 INTEGER;
  DECLARE VARIABLE var2 INTEGER;
  DECLARE PROCEDURE testeinterno(valor INT)
  AS
  BEGIN
    insert into tabela_teste (campo1, campo2) values (:var1, :valor);
  END
BEGIN
  var1 = select x from y where z = zz;

  execute procedure testeinterno(5);
  execute procedure testeinterno(6);

  SUSPEND;
END

passando apenas 1 parâmetro para a sub-procedure e dentro dela usando uma
variável interna (da procedure "pai"), tenho vários parâmetros para passar
e se fosse possível utililizar a variável interna da procedure "pai" o
código ficaria bem mais clean


-=Ma®©oS=-
Marcos R. Weimer
Pessoas quietas têm as mentes mais barulhentas - Stephen Hawking
Viver significa ter algumas alegrias e muito sofrimento - Pepe Mujica
Muitos daqueles que te chamam de louco queriam ter a sua coragem - Silvio
Santos





Em ter., 23 de mar. de 2021 às 10:52, Carlos H. Cantu via lista <
lista em firebase.com.br> escreveu:

> Passar ela como parâmetro pra procedure "interna"?
>
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>
> MRWvl> Ola!
>
> MRWvl> Tem alguma maneira de acessar a variavel da procedure "pai" ?
>
> MRWvl> Exemplo:
>
> MRWvl> CREATE OR ALTER PROCEDURE prc_teste
> MRWvl> AS
> MRWvl>   DECLARE VARIABLE var1 INTEGER;
> MRWvl>   DECLARE VARIABLE var2 INTEGER;
> MRWvl>   DECLARE PROCEDURE testeinterno(valor INT)
> MRWvl>   AS
> MRWvl>   BEGIN
> MRWvl>     insert into tabela_teste (campo1, campo2) values (:var1,
> :valor);
> MRWvl>   END
> MRWvl> BEGIN
> MRWvl>   /* Procedure Text */
> MRWvl>   SUSPEND;
> MRWvl> END
>
> MRWvl> não compila: "Unknow variable 'var1'"
>
> MRWvl> A dúvida é se tem alguma maneira de acessar esta variável.
>
>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>


Mais detalhes sobre a lista de discussão lista