abert.lenta quando tem itens excluidos.
Moderador: Moderadores
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
abert.lenta quando tem itens excluidos.
Caros colegas estou enfretando um problema teoricamente simples mais estah me dando alguma dor de cabeça; acontece q tenho um arq. de etiqueta e outros no arq. de etiqueta após a impressão do usuário o arq. deleta os registro inclusos, com isso existem muitos itens excluido, quanto mais registro excluido mais fica lento a abertura do indice (cdx), alguem sabe algo sobre isso. Como fazer pra q fique mais rapido a abertura desses arq. com muitos itens excluidos?
Obrigado.
Marcos Roberto.
Obrigado.
Marcos Roberto.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Marcos Boa Noite.
Para resolver a lentidão vc terá q packear o arquivo.
Usando set dele on, o clipper filtrará os regs excluidos, qto maior o nro mais lento ficará.
Já pensou em mudar sua rotina e trabalhar com matriz, já q toda vez os reg são excluídos no final.
Para resolver a lentidão vc terá q packear o arquivo.
Usando set dele on, o clipper filtrará os regs excluidos, qto maior o nro mais lento ficará.
Já pensou em mudar sua rotina e trabalhar com matriz, já q toda vez os reg são excluídos no final.
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
Outra opção seria utilizar um arquivo temporário que conteria apenas os registros inclusos, no final era só excluir o arquivo. Se é que eu entendi bem a questão.
Até logo.
Marcelo
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Caros, n ficou muito claro as soluções indicadas, primeiro usar o pack no arq eh complicado pra mim pq uso os arq. abertos na rede, ou seja, assim q o usuário abre o programa ele deixa todos os arq. abertos com seus respectivos indices, sobre arq. temporários eu n entendi muito bem.
Como falei anteriormente o sistema abre todos os arqs (dbf e cdx) na abertura do programa no comando set index to arqind ele fica muito lento quando eh um arq. q tem varios registro marcados como deletado, isso acontece no arq. de etiqueta e arq. no contas a receber e itens de compra, no caso de etiqueta eu ateh poderia usar um arq. temporário mas ficaria inviavel eu abrir o contas a receber por exemplo temporário. Ok?
Marcos Roberto
Como falei anteriormente o sistema abre todos os arqs (dbf e cdx) na abertura do programa no comando set index to arqind ele fica muito lento quando eh um arq. q tem varios registro marcados como deletado, isso acontece no arq. de etiqueta e arq. no contas a receber e itens de compra, no caso de etiqueta eu ateh poderia usar um arq. temporário mas ficaria inviavel eu abrir o contas a receber por exemplo temporário. Ok?
Marcos Roberto
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Marcos.
Bom nos meus sistemas administrativos eu possou rotinas de arquivo morto.
Como se fosse pack ele copia os dados q não serão mais usados para um arquivo paralelo aberto somente para consultas, pq tenho mtos clientes q possuem ISO INMETRO e as informações tem q estar documentadas digitalmente por um determinado período senão ia direto pro espaço....
Fica inviavel vc usar um arquivo temporario no contas a receber isso é logico mas limpar ou arrancar fora os registros desnecessários de vez em quando é bom. Isso é manutenção de sistema. Durante a criação ou indexação dos indices é um processo q vc terá que fazer com seu sistema acessando exclusivo esse arquivos, pq não durante esse processo vc implementar algo que minimize essas regs sem uso.
Ou até msm vc criar um campo flag para cada vez q o usuário excluir o registro vc gravar nele e para filtrar vc usar o scope do cdx assim não haverá necessidade de vc ficar "limpando" o dbf.
E tb tente fazer isso crie seus indices CDX usando a clausula for !deleted() .
Abraços
Bom nos meus sistemas administrativos eu possou rotinas de arquivo morto.
Como se fosse pack ele copia os dados q não serão mais usados para um arquivo paralelo aberto somente para consultas, pq tenho mtos clientes q possuem ISO INMETRO e as informações tem q estar documentadas digitalmente por um determinado período senão ia direto pro espaço....
Fica inviavel vc usar um arquivo temporario no contas a receber isso é logico mas limpar ou arrancar fora os registros desnecessários de vez em quando é bom. Isso é manutenção de sistema. Durante a criação ou indexação dos indices é um processo q vc terá que fazer com seu sistema acessando exclusivo esse arquivos, pq não durante esse processo vc implementar algo que minimize essas regs sem uso.
Ou até msm vc criar um campo flag para cada vez q o usuário excluir o registro vc gravar nele e para filtrar vc usar o scope do cdx assim não haverá necessidade de vc ficar "limpando" o dbf.
E tb tente fazer isso crie seus indices CDX usando a clausula for !deleted() .
Abraços
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Opa! A solução mais viavel me parece usar o for !deleted() pois com isso no indice ele n c preocuparia com os deletados, sobre fazer manutenção de sistema eu concordo, mas desde aquela fez q instalei o win2000 eu fico varios meses sem precisar fazer reindexacao e n ser quando tem um nobreak com problema mas fora isso jah fiquei muito tempo sem precisar, vou tentar a opção for !deleted() nos arq. q tem muitas exclusões.
Valew!
Marcos Roberto.
Valew!
Marcos Roberto.
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Aproveitando q vc (eduardo) tah respondendo essa gostaria de fazer outra pergunta, outro dia vc deixou uma amostra aqui no forum d um sistema em xharbour+gtwvt foi entaum q resolvi d fato migrar meus sistemas para xharbour bom para compilar e linkeditar eu consegui perfeitamente, existe um problema na pesquisa de clientes mais isso acho q eh simples de resolver, no meu caso eu uso certas funções para tela q saum parecidas (d cor diferente) com as q vc tem no programa d exemplo, soh q quando usei a lib grafica o q eh linha ele aparece como caractere sujando toda a tela, no seu caso como vc conseguio desenhar a tela do programa? E olha q jah tentei usar o chr tb. Obrigado.
Marcos Roberto.
Marcos Roberto.