[firebase-br] Dúvida básica de Stored Procedure!

Roger pikurim em hotmail.com
Ter Jan 15 17:06:08 -03 2008


Tranquilo, isso eu entendi, a minha dúvida é como chamar uma procedure 
passando parâmetros de entrada, já consegui, com o manual de introdução à SP 
do Firebase, tenho a seguinte SP que fiz:

BEGIN
  FOR
    SELECT O.ID_AREA,O.ID_OPERACAO,
           AVG(P.DURACAO) TOTAL,
           AVG(P.TRANSPORTE) TRANSPORTE,
           AVG(P.LIMITE) LIMITE,
           CASE WHEN COUNT(*) > 1 THEN COUNT(*) ELSE 0 END CICLOS,
           SUM(CASE WHEN P.EXCEDIDO > 0 THEN 1 ELSE 0 END) EXCEDIDOS,
           SUM(EXCEDIDO) MINUTOS

    FROM OPERACOES O
    LEFT OUTER JOIN PROCESSADOS P ON (O.ID_OPERACAO = P.OPERACAO_ID) AND 
(O.ID_AREA = P.AREA_ID) AND
                                     ((P.INICIO >= :INICIO) AND (P.TERMINO 
<= :FIM))
    GROUP BY O.ID_AREA,O.ID_OPERACAO
    INTO :ID_AREA,
         :ID_OPERACAO,
         :TOTAL,
         :TRANSPORTE,
         :LIMITE,
         :CICLOS,
         :EXCEDIDOS,
         :MINUTOS
  DO
  BEGIN
    SUSPEND;
  END
END


Então eu consegui chamar da seguinte forma:

SELECT * FROM CONSULTA_TIP('12/01/2007 00:00:00','12/31/2007 23:59:59')

Era isso, valeu!

Roger.














"Magno System" <magno em speet.com.br> escreveu na 
notícia da mensagem:001901c857af$ffc234b0$6915a8c0 em MagnoXXX...
> Parte 1:  Crie uma SP onde tenha duas variáveis do tipo OUTPUT: DATA(Date) 
> e
> HORA(Time).
>
> A SP terá o seguinte comando:
>
> SELECT DATA, HORA FROM RDB$DATABASE INTO :DATA, :HORA;
> SUSPEND;
>
> Parte 2:
>
> No seu componente tquery (zeos, dbx, ibo, mdo, etc...) coloque o seguinte
> comando:
>
> SELECT DATA, HORA FROM NOMEDAPROCEDUREACIMA.
>
> Caso você ligue o componente a uma grid a grid ficará com duas colunas 
> (DATA
> e HORA) com valores contendo a data e hora atual do servidor.
>
> EMPRESA: Marcelo Guimarães Nogueira
> NOME FANTASIA: Magno System
> ENDEREÇO: Rua Oliveira Leite, 66 - Centro - Passa Quatro - MG
> EMAIL: magno em speet.com.br
> CNPJ: 07.693.076/0001-99
>
> Marcelo Guimarães Nogueira
> Magno System (Empresa Desenvolvedora de Software)
> ----- Original Message ----- 
> From: "Roger" <pikurim em hotmail.com>
> To: <lista em firebase.com.br>
> Sent: Tuesday, January 15, 2008 2:44 PM
> Subject: Re: [firebase-br]Dúvida básica de Stored Procedure!
>
>
> Não entendi a parte de colocar parâmetros de entrada:
>
> por exemplo quero entrar com data inicial e final como fica o SQL?
>
> SELECT * FROM PROCEDURE INTO '12-01-2007 00:00:00', '12-31-2007 23:59:59'
>
> o código acima não funcionou, como posso fazer?
>
> Obrigado!
>
> Roger.
>
> _________________________________
>
>
> "Magno System" <magno em speet.com.br> escreveu na
> notícia da mensagem:013d01c856bc$4d839ad0$6915a8c0 em MagnoXXX...
>> Funciona sim. Exemplo básico. Defina dentro da SP as variáveis DATA 
>> (Date)
>> HORA(time) como OUTPUT.
>>
>> A SP terá o seguinte comando:
>>
>> SELECT CURRENT_DATE, CURRENT_TIME FROM RDB$DATABASE INTO :DATA, :HORA
>> SUSPEND;
>>
>> No delphi use um componente "tquery da vida" e coloque o seguinte 
>> comando.
>>
>> SELECT DATA, HORA FROM NOMEDAPROCEDURE
>>
>> Te retornará 1 registro com dois campos (data e hora atual).
>>
>> Para cada SUSPEND é retornado uma linha de registro, portanto a partir 
>> daí
>> você pode extrair valores de várias tabelas jogá-los em variáveis e dar 
>> um
>> SUSPEND formando assim uma ou mais linhas de registros, portanto, você
>> teria
>> uma tabela virtual.
>>
>>
>> EMPRESA: Marcelo Guimarães Nogueira
>> NOME FANTASIA: Magno System
>> ENDEREÇO: Rua Oliveira Leite, 66 - Centro - Passa Quatro - MG
>> EMAIL: magno em speet.com.br
>> CNPJ: 07.693.076/0001-99
>>
>> Marcelo Guimarães Nogueira
>> Magno System (Empresa Desenvolvedora de Software)
>> ----- Original Message ----- 
>> From: "Roger" <pikurim em hotmail.com>
>> To: <lista em firebase.com.br>
>> Sent: Monday, January 14, 2008 10:33 AM
>> Subject: [firebase-br] Dúvida básica de Stored Procedure!
>>
>>
>> Desculpem a pergunta idiota, mas só consigo usar
>> Stored Procedure para comandos tipo: INSERT, UPDATE, DELETE?
>>
>> Para SELECT não funciona????
>>
>> Roger.
>>
>>
>>
>> ______________________________________________
>> 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
>>
>>
>> -- 
>> Internal Virus Database is out-of-date.
>> Checked by AVG Free Edition.
>> Version: 7.5.516 / Virus Database: 269.17.13/1213 - Release Date: 
>> 7/1/2008
>> 09:14
>>
>>
>>
>> ______________________________________________
>> 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
>>
>
>
> ______________________________________________
> 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
>
>
> -- 
> Internal Virus Database is out-of-date.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.17.13/1213 - Release Date: 7/1/2008
> 09:14
>
>
>
> ______________________________________________
> 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
> 





Mais detalhes sobre a lista de discussão lista