[firebase-br] Stored Procedure Dinamica

Claudio.sj@sercon.com.br claudio.sj em sercon.com.br
Qua Ago 20 11:48:33 -03 2008


Kleber funcionou perfeitamente..
Muito obrigado, vc nao sabe como esta SP vai me poupar um longo prazo de
programacao

Valeu ...

----- Original Message ----- 
From: "Kleber Caneva" <kdcc em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 20, 2008 10:50 AM
Subject: Re: [firebase-br] Stored Procedure Dinamica


Veja se não é problema com os apostrofes nos campos alfanumericos na
montagem das condições do Select. Talvez vc tenha que usar o duplo
apostrofe.

Ficaria assim:

execute STATEMENT 'SELECT SUM(MVFVME - MVFVSE) FROM ' || tabela || '
WHERE MVFSTS <> ''' || TIPOSTS || '''AND MVFCCL = ''' || CODIGOTRA  || ''''
INTO
:RESULTADO;

[]´s

Kléber Caneva

----- Original Message ----- 
From: "Claudio.sj em sercon.com.br" <claudio.sj em sercon.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 20, 2008 9:32 AM
Subject: Re: [firebase-br] Stored Procedure Dinamica


Acontece o seguinte
a matriz tem a tabela tb_fatmvf
a filial 01  tem a tabela e00001_tb_fatmvf
a filial 02  tem a tabela e00002_tb_fatmvf
a filial 03  tem a tabela e00003_tb_fatmvf

e assim por diante, só que tem empresas que só tem uma filial, ha outras que
é só a matriz.
por isso tem que ser uma SP dinamica.



----- Original Message ----- 
From: "Valdir Marcos" <valdir.marcos em ig.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, August 19, 2008 6:36 PM
Subject: Re: [firebase-br] Stored Procedure Dinamica


Tente fazer testes diretamente sua ferramenta de administração do
Firebird, como por exemplo:

Select * From Soma_MVF('Vendas', 123, 'A');

Em relação ao comando acima, como seria o select que você está tentando
rodar?

Um abraço,

Valdir


2008/8/19, Claudio.sj em sercon.com.br <claudio.sj em sercon.com.br>:
> Ola pessoal da lista
> Eu nao costumo postar duvidas, mais venho acompanhando com frequencia a
lista.
> Só que desta vez tenho um problema a ser resolvido e ainda nao consegui
sair do outro lado, acontece que preciso executar uma Stored Procedure
dinamica, ou seja quero passar pra SP o nome da "tabela", o codigo do
"cliente", o status do movimento e ele devera me retornar uma soma de alguns
valores.
>
> Nao sei se consegui expressar corretamente a minha duvida, mais estou
postando a minha SP ..
>
> Agradeço a todos que poderem colaborar.
>
> vejam abaixo
> recebo 3 parametros
> tabela -> tabela a ser executada a select da soma dos campos
> codigotra -> codigo do cliente para selecao
> tiposts -> Status do movimento
>
> e devera me retornar o RESULTADO
>
> SET TERM ^ ;
>
> CREATE PROCEDURE SOMA_MVF (
>    tabela varchar(50),
>    codigotra varchar(50),
>    tiposts char(1))
> returns (
>    resultado numeric(18,2))
> as
> begin
>    execute STATEMENT 'SELECT SUM(MVFVME - MVFVSE) FROM ' || tabela || '
WHERE MVFSTS <> ' || TIPOSTS || 'AND MVFCCL = ' || CODIGOTRA  INTO
:RESULTADO;
>    if(RESULTADO IS NULL ) THEN RESULTADO = 0;
>    SUSPEND;
> end^
>
> SET TERM ; ^
>
> a SP da o seguinte erro dizendo que a coluna MVFCCL nao existe na tabela;
> Invalid token.
> Dynamic SQL Error.
> SQL error code = -104.
> Token unknown - line 1, char 62.
> MVFCCL.
> ______________________________________________
> 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


______________________________________________
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

E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, visite
http://mail.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0NDU0NzM0I3Blcm0hdGVycmEmMSwxMjE5MjM1NTkzLjE2NTMxOC4yNjgxLnByZXN0b24udGVycmEuY29tLDY1ODM=
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.



______________________________________________
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