[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