Página 1 de 1

Mandar para Arquivo Morto.

Enviado: 06 Mai 2005 18:49
por Marcos
Olá a Todos do Fórum,
Estou precisando de uma ajuda, o sistema esta muito lento, preciso esvaziar o DBF de Vendas e Itens das Vendas, alguém poderia me ajudar com alguma coisa, estamos em campanha de vacinação contra febre aftosa, e o movimento está bruto, com terminais lentos e ainda usando o Set Filter, como não posso mecher agora no maledeto do Set Filter por questão de tempo, pensei em arquivar um pouco do movimento ou então limpar, sei lá, preciso de ajuda.
Abraços,
Marcos.

Enviado: 06 Mai 2005 19:06
por evolver
Pensei em postar algo usando loops while/end com for/next para nomes de campo e dbeval para seleção mas hoje tou de bom humor.

Código: Selecionar todos

use arqvivo
copy to arqmorto.dbf for data < v_sei_la
dele all for data < v_sei_la
pack
para restaurar mais tarde

Código: Selecionar todos

use arqvivo
append from arqmorto.dbf

Enviado: 09 Mai 2005 08:23
por Marcos
Ainda não resolvi meu problema :( , tentei executar da maneira que o Evolver sugeriu, mas não funcionou, só moveu e apagou uma parte do DBF, e também eu tenho dois DBF'S que gostaria de mover para o ARQMORTO.DBF e Apagar, o VENDAS.DBF e o ITENVEND.DBF, ou sej, um está relacionado ao outro, se alguém puder dar mais alguma ajuda, ficaria muito grato.
Marcos.

Enviado: 09 Mai 2005 20:41
por evolver
Então não estou entendendo o que você quer... eu sempre entendi arquivo morto como um arquivo para onde a gente joga os dados a serem descartados.

E se tu tem 3 bancos de dados pra cada um deles tem que ter um arquivo morto com nome diferente.

Enviado: 10 Mai 2005 10:42
por MWAdriano
Entendo sua dúvida,

Vc precisa postar a estrutura dos dois arquivos, para podermos dar um exemplo melhor.

Nao sabemos por qual chave os dbf´s estão relacionados, nem quais campos podemos utilizar de referência para apagar...

Vou tentar

Código: Selecionar todos


use arqvivo
copy to arqmorto.dbf for data < v_sei_la
dele all for data < v_sei_la
pack 
use arqmorto
index on (CHAVE) to arqmorto
use arqitens new
copy to arqmorit.dbf for (existArqM(arqitens->(CHAVE)))
dele all for (existArqM(arqitens->(CHAVE)))


function  existArqM(cKey)
arqmorto->(dbSeek(cKey,.f.))
return(arqmorto->(found()))

Subistitua (CHAVE) pelo campo utilizado como chave de pesquisa.

Enviado: 10 Mai 2005 17:05
por Marcos
MWadriano, obrigado pela ajuda, vou testar e retorno com os resultado.
Abraços,
Marcos.