Re: [firebase-br] Procedure - que não nem como começar

BandaLemuel bandalemuel em yahoo.com.br
Ter Set 5 15:09:05 -03 2006


        Fiz do jeito que você falou,mas ele não esta alterando

COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;

/* Stored procedures */

CREATE PROCEDURE "BATERCARTAO"
(
  "CDFIL" INTEGER,
  "NRCRA" INTEGER
)
AS
BEGIN EXIT; END ^


ALTER PROCEDURE "BATERCARTAO"
(
  "CDFIL" INTEGER,
  "NRCRA" INTEGER
)
AS
declare variable h1 integer ;
  declare variable h2 integer ;
  declare variable h3 integer ;
  declare variable h4 integer ;
  declare variable h5 integer ;
  declare variable h6 integer ;
BEGIN
   SELECT A.HRPON1 , A.HRPON2 , A.HRPON3 , A.HRPON4 , A.HRPON5 , A.HRPON6
              FROM CPONTO A WHERE A.CDFIL=:CDFIL AND A.NRCRA=:NRCRA
              AND A.DTPON=CURRENT_DATE INTO :h1, :h2 , :h3 , :h4 , :h5 , :h6 
;
         if ( :h1 is null ) then
            begin
             INSERT INTO CPONTO ( CDFIL , NRCRA , DTPON , HRPON1 ) VALUES 
( :CDFIL , :NRCRA , CURRENT_DATE , CURRENT_TIME );
             suspend;
            end

         if ( :h2 is null ) then
           begin
            UPDATE CPONTO SET HRPON2=CURRENT_TIME WHERE CDFIL=:CDFIL AND 
NRCRA=:NRCRA AND DTPON=CURRENT_DATE;
            suspend;
           end

         if ( :h3 is null ) then
           begin
            UPDATE CPONTO SET HRPON3=CURRENT_TIME WHERE CDFIL=:CDFIL AND 
NRCRA=:NRCRA AND DTPON=CURRENT_DATE;
            suspend;
           end

         if ( :h4 is null ) then
           begin
            UPDATE CPONTO SET HRPON4=CURRENT_TIME WHERE CDFIL=:CDFIL AND 
NRCRA=:NRCRA AND DTPON=CURRENT_DATE;
            suspend;
           end

         if ( :h5 is null ) then
           begin
            UPDATE CPONTO SET HRPON5=CURRENT_TIME WHERE CDFIL=:CDFIL AND 
NRCRA=:NRCRA AND DTPON=CURRENT_DATE;
            suspend;
           end

         if ( :h6 is null ) then
           begin
            UPDATE CPONTO SET HRPON6=CURRENT_TIME WHERE CDFIL=:CDFIL AND 
NRCRA=:NRCRA AND DTPON=CURRENT_DATE;
            suspend;
           end

         if ( :h6 is not null ) then
           begin
            EXCEPTION BATEUDEMAIS;
           end

END
 ^

SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;

o quepode estar eraado?

Orbigado




----- Original Message ----- 
From: "BandaLemuel" <bandalemuel em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, September 05, 2006 2:02 PM
Subject: Re: [firebase-br] Procedure - que não nem como começar


        Obrigado... O que viria a ser um WebService..???? Desculpe a
ignorancia....

----- Original Message ----- 
From: "Ton - Hotmail" <hevertonc em hotmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Tuesday, September 05, 2006 1:54 PM
Subject: RES: [firebase-br] Procedure - que não nem como começar


   Olá...

   Dentro da procedure, é só vc fazer um select nos campos e verificar qual
o primeiro deles que tem valor NULL, por exemplo:

   SELECT hr1, hr2, hr3, hr4, hr5, hr6
   FROM Tabela
   WHERE Condição
   INTO :H1, :H2, :H3, :H4, :H5, :H6;

   Depois faz IFs verificando de as variáveis estão nulas, por exemplo:
   if (:H1 is null) then
   E altera o registro, com um update comum...

   Mas aki vão algumas coisas...
   1- Por estar na Internet, a procedure aumeta a performance, mas não faz
milagre, ainda vai continuar lento.
   2- Porque não cria uma tabela detalhe com os horários, assim não precisa
ficar vendo qual campo já está preenchido, simplesmente adiciona com a chave
do funcionário, a Data, a Hora e se é de entrada ou saída (Caso esta
informação seja necessária), Além de ficar mais simples, selects bem simples
podem resolver a busca e vc fica sem limites de batidas de cartão, seja um
funcionário que bateu cartão 2, 4 6 ou 10 vezes, ele vai conseguir suportar.
   3- Se o Banco precisar ficar na Web mesmo, já que são poucas informações
a trafegar, estuda a possibilidade de um WebService pra isso, resolve seu
problema com a lentidão do banco.

        Ton
Analista de Sistemas
 DotCom Informática

"A infrmação não é um produto,
e sim a matéria prima." (Ton)
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de BandaLemuel
Enviada em: terça-feira, 5 de setembro de 2006 13:44
Para: FireBase
Assunto: [firebase-br] Procedure - que não nem como começar


        Lista

    É o seguinte, estou fazendo uma aplicação de cartão de Ponto, tenho tudo

pronto, e coloquei o banco na internet, mas esta muito lento, quero
inplementar com Procedure para ficar mais rápido. Como funciona...

    A Tabela tem os Camspo

        hr1 , hr2 , hr3 , hr4 , hr5 e hr6, que são os horários batidos do
dia.... ou seja até 6 vezes ....

    preciso verificar se já foi batido uma vez se foi , ele altera o
registro e coloca no proximo hr, e se não foi batido insere o reg com a hora

no hr1...

        eu não faço ideia como fazer isso, vcs podem me ajudar ?

        Obrigado.

        Wesley



_______________________________________________________
O Yahoo! está de cara nova. Venha conferir!
http://br.yahoo.com


______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.7/437 - Release Date: 04/09/2006




_______________________________________________________
O Yahoo! está de cara nova. Venha conferir!
http://br.yahoo.com


______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.7/437 - Release Date: 04/09/2006



		
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 






Mais detalhes sobre a lista de discussão lista