[firebase-br] Duvida sobre Execute Statement

Sandro Souza escovadordebits em gmail.com
Qua Fev 13 22:28:07 -03 2013


Bom dia/tarde Luciano.

Meu nobre, posso até estar enganado, mas acredito que o comando "execute
statment" não vai funcionar dessa forma, ou seja, não é como a função
"eval" do javascript ou do antigo clipper.

Porque não tenta outra abordagem, como essa aqui:

create or alter procedure CUSTOFINAL (
  OP integer,
  CUSTO "Valores",
  ENCARGOS "Valores"
) returns (
  RESULTADO "Valores"
) as
declare variable VCUSTO "Valores";
declare variable CUSTOINTERNO "Valores";
declare variable VENCARGOS "Valores";
begin
  vCusto = Custo;
  vEncargos = Encargos;
  if (Op = 0) Then
  Begin
    CustoInterno = vCusto;
    vEncargos = (CustoInterno * vCusto) / 100;
    Resultado = vCusto + vEncargos;
  End
  suspend;
end

Mesmo assim, analisando essa stored procedure, vemos a seguinte lógica:

Se OP = 0, o resultado é "custo + (custo * custo) / 100".
Se OP <> 0, o resultado é indefinido.

É isso mesmo o que deveria ser implementado?

No que eu puder ajudar, conte comigo.
Só precisa definir exatamente a fórmula que você deseja implementar.

Espero ter ajudado mais que atrapalhado.
No dia 13 de Fev de 2013 15:03, "Luciano franca" <luapfirebird em yahoo.com.br>
escreveu:

>  Gostaria de entender melhor pois esse codigo abaixo não funciona como
> deve proceder
> Essa procedure faz parte de uma procedure maior porém coloquei apenas uma
> parte dela
>
> create or alter procedure CUSTOFINAL (
>     OP integer,
>     CUSTO "Valores",
>     ENCARGOS "Valores")
> returns (
>     RESULTADO "Valores")
> as
> declare variable VCUSTO "Valores";
> declare variable CUSTOINTERNO "Valores";
> declare variable VENCARGOS "Valores";
> declare variable STRDESPESAS varchar(100);
> begin
>   vCusto = Custo;
>   vEncargos = Encargos;
>   StrDespesas =  ' vEncargos = (CustoInterno * vCusto) / 100; ';
>
>   if (Op = 0) Then Begin
>     CustoInterno = vCusto;
>     Execute Statement StrDespesas;
>     Resultado = vCusto + vEncargos;
>   End
>
>   suspend;
> end
> ______________________________________________
> 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