[firebase-br] Fw: Trigger com verificação?

Zottis zottissistemas em brturbo.com.br
Sex Maio 23 14:49:16 -03 2008


Deu certo Magno, muitíssimo obrigado,


Zottis(TeamFB Users)

Zottis Sistemas - 2008 Ano XI
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "MagnoS" <magnoscosta em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, May 23, 2008 7:21 AM
Subject: Re: [firebase-br]Fw: Trigger com verificação?


bom.. entao vamos analisar seu problema..
O usuário clica la em excluir, ai o produto X é marcado : Deletado = 'S',
DATAEXCLUCAO = '22/05/2008'
E em config Dias_Limbo, vc tem 90, por exemplo.

blz.. entao deve-se correr uma trigguer verificando todos os dias quais sao
os produtos que serão excluídos do banco, onde, estejam dentro do parâmetro:
DATAEXCLUSÃO + DIAS_LIMBO...
se nao tiver sido utilizado em lugar nenhum... ai exclui-se
automáticamente...

Pregunto... os produtos que serão excluídos, vc necessita saber quais os
códigos deles?? tipo.. o produto 10 e 11 estão dentro da regra, pode
excluir, ou vc tem que listar em algum lugar esses dois codigos para
alguém??

Se nao precisa listar vamos a solução:

DELETE PRODUTOS
 WHERE PRODUTOS.DATA_EXCLUSAO <= (CURRENT_DATE - COALESCE(( SELECT
(DIAS_LIMBO)

                                                              FROM
CONFIG),90))
   AND PRODUTOS.IDPRODUTO NOT IN ( SELECT D_VENDA.CODPRO

 FROM D_VENDA )

;..
Para testar antes:

SELECT PRODUTOS.IDPRODUTO, DATA_EXCLUSAO,
               CURRENT_DATE - COALESCE(( SELECT (DIAS_LIMBO)
                                                                           FROM
CONFIG),90) EXCLUIR_ANT_A
  FROM PRODUTOS
WHERE PRODUTOS.DATA_EXCLUSAO <= (CURRENT_DATE - COALESCE(( SELECT
(DIAS_LIMBO)

                                                             FROM
CONFIG),90))
     AND PRODUTOS.IDPRODUTO NOT IN ( SELECT D_VENDA.CODPRO

   FROM D_VENDA )

ai ele vai retornar os cod dos produtos a data marcada para exclusão e a
data limite que tem q excluir, de todos os produtos que nao foram utilizados
em vendas.

blz..

Se nao for isso, vamos continuar debatendo até chegarmos a uma conclusão.





----- Original Message ----- 
From: "Zottis" <zottissistemas em brturbo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, May 23, 2008 3:09 PM
Subject: Re: [firebase-br]Fw: Trigger com verificação?


tenho tabelas que em vez de deletar direto são marcadas para a exclusão
posterior
com um campo Deletado = 'S', se estiver marcado com 'S' é colocado a data da
"EXCLUSÃO"
Data_Exclusao = data


e tenho em outra tabela(Opcoes) um campo chamado de Dias_limbo que o Cliente
configura quantos dias ele quer que os arquivos marcados para a exclusão
fique ainda no banco de dados.
por padrão é 90 dias.
(fiz este sistema pois ja tive clientes que deletaram certas informações e
depois precisavam de volta dias após terem deletado).

desenvolvi gatilhos para as tabelas para a exclusão automática quando a data
de exclusão atingir o valor do Dias_limbo da tabela Opcoes.

mas aí acontece o Problema, Por exemplo, a tabela produtos pode ter
registros deletados que já foram usados em Itens de Pedido ou orçamentos,
então preciso descobrir qual é o registro que esta marcado para a Exclusão,
com a data vencida e que NÃO tenha sido usado em Nenhuma outra tabela com
Chave estrangeira da Tabela Produtos.

por isso o comando List resolveria o problema, pois já traria montado o
comando IN.

e mais uma vez obrigado pela ajuda.

Zottis(TeamFB Users)

Zottis Sistemas - 2008 Ano XI
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "MagnoS" <magnoscosta em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, May 23, 2008 4:52 AM
Subject: Re: [firebase-br]Fw: Trigger com verificação?


Opa.. por nada.. mas vamos continua até encontrar a solução???

eu nao entendi direito o que vc precisa...


----- Original Message ----- 
From: "Zottis" <zottissistemas em brturbo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, May 23, 2008 1:14 PM
Subject: Re: [firebase-br]Fw: Trigger com verificação?


O Problema é que o count vai me retornar apenas o Numero de registros
encontrados, e eu preciso que retorne o ID dos registros, mas obrigado pelo
esforço.


Zottis(TeamFB Users)

Zottis Sistemas - 2008 Ano XI
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez

----- Original Message ----- 
From: "MagnoS" <magnoscosta em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, May 22, 2008 4:40 AM
Subject: Re: [firebase-br]Fw: Trigger com verificação?


Só complementando.. eu estive testando essa situação.. e acabei lembrando de
outra identica no oracle...

pois.. ele tambem nao aceita um select onde tenha uma clausula in (
:parametro ), sentro este parametro varchar (string), tal como nosso caso
pois o list retorna uma string...



----- Original Message ----- 
From: "MagnoS" <magnoscosta em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, May 22, 2008 9:18 AM
Subject: Re: [firebase-br]Fw: Trigger com verificação?


Não sei se vc conseguiu.. mas nesse caso vc poderia utilizar sem o list...

select count(PRODUTONO) from  itens where produtono IN
(SELECT produtos.produtono
    FROM produtos
  WHERE produtos.deletado = 'S'
       AND produtos.data_exclusao < (current_date - Coalesce(( select
(dias_limbo) from opcoes),90)));


que tambem da certo.

vlw.




> ----- Original Message ----- 
> From: "Zottis" <zottissistemas em brturbo.com.br>
> To: <lista em firebase.com.br>
> Sent: Wednesday, May 14, 2008 4:01 PM
> Subject: [firebase-br] Fw: Trigger com verificação?
>
>
> Pessoal, estou tentando mudar o jeito de Excluir certos registros que
> estão
> marcados para a exclusão
>
> campo deletado
> campo data_Exclusão
>
> mas não estou conseguindo
>
> SELECT LIST(produtos.produtono, ',')
>  FROM produtos WHERE produtos.deletado = 'S' AND produtos.data_exclusao <
> (current_date - Coalesce(( select (dias_limbo) from opcoes),90));
>
> o retorno é = 10,12,13,14,16,17,18
>
> e aqui retorna 15
> select count(PRODUTONO) from  itens where produtono
> IN(10,12,13,14,16,17,18);
>
> mas se faço assim
> select count(PRODUTONO) from  itens where produtono IN(SELECT
> LIST(produtos.produtono, ',')
>  FROM produtos WHERE produtos.deletado = 'S' AND produtos.data_exclusao <
> (current_date - Coalesce(( select (dias_limbo) from opcoes),90)));
>
> ele retorna 0 (ZERO)
>
> tem como fazer isso direto?
>
> valeu.
> Uso FB 2.1
>
>
> Zottis(TeamFB Users)
>
> Zottis Sistemas - 2008 Ano XI
> Programação Delphi/PHP/Firebird/MySQL
>
> "Um homem só tem o direito de olhar
>  a um outro de cima para baixo, quando
>  vai ajuda-lo a levantar-se".
>                   Gabriel Garcia Marquez
>
>
> ______________________________________________
> 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
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.524 / Virus Database: 269.23.16/1432 - Release Date:
> 14/05/2008 7:49
>


______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.21/1458 - Release Date: 21/05/2008
7:21


______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.21/1458 - Release Date: 21/05/2008
7:21


______________________________________________
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


-- 
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.21/1458 - Release Date: 21/05/2008
7:21


______________________________________________
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