ajuda com datas

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

vaninho
Usuário Nível 1
Usuário Nível 1
Mensagens: 27
Registrado em: 17 Jul 2004 19:41

ajuda com datas

Mensagem por vaninho »

Amigos eu preciso limpar um banco de dados atraves de uma rotina,devido ao bco de dados estar muito grande,com dados desnecessarios.
eu gostaria de criar para limpar os dados dos ultimos 6 meses.

eu pensei assim,

uma variavel ?

comparar esta variavel com a data do banco de dados de pedido por exemplo campo (dataped) type date.

se a datas de pedidos que for encontrando for igual ao periodo de 6 meses deletar.

Código: Selecionar todos

goto top
dentro do laço do while
if eof()
     limpeza concluida
      Close all
     return
endif
     return
 if dataped=variavel
         set filter to dataped=variavel
         delete
         skip
else
endif
loop
ENDDO
o que esta pegando é eu que não sei como criar esta variavel( o Valor a ser comparado) correspondendo ao 6 meses para fazer a busca nas datas do banco de dados.

Alguém por favor pode me ajudar.
Editado pela última vez por Pablo César em 04 Mai 2012 16:59, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
kiko
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 08 Jul 2004 15:24
Localização: Cianorte

Mensagem por kiko »

eu faria da seguinte forma:

Código: Selecionar todos

select <<seu_banco_de_dados>>
set order to <<sua_ordem>>
go top
do while !eof()
   if <<data_de_emissao>> <= CTOD("01/01/2005")
      DELETE
   endif
   skip
enddo
PACK
alert("Limpeza Concluida")
o que esta entr <<>> sao os campos, alias e ordens do seu banco de dados...soh usei pra exemplificar...
resumindo...tudo o que estiver no seu banco de dados cuja emissao, ou a data que vc preferir, for menor que a data, que no exemplo eu utilizei 1 de janeiro, vai pro beleleu...
ou ainda, no lugar daquela data, vc pode utilizar uma variavel que o usuario digita, ai vc pode criar um utilitario de manutençao da base de dados pra ficar mais maleavel...

abraços e ateh a proxima...
Editado pela última vez por Pablo César em 04 Mai 2012 17:01, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Tbm faria algo parecido...

Não se esqueca dos set's:

SET EPOCH TO ...
SET CENTURY ON/OFF
SET DATE TO ...

Apenas um conselho: Não dê o comando PACK logo na primeira vez que rodar a rotina, antes faça alguns testes.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder