Página 1 de 1

sort no xharbour - com falha ???

Enviado: 03 Mar 2008 16:43
por tonyx
no xharbour tenho funcao que organizo pelo SORT CAMPO TO ARQUIVO
1. NA PRIMEIRAVEZ QUE PASSA PELO ARQUIVO EXECUTA OK
2 NA SEGUNDA VEZ E LERDO DEMAIS ??
------- EXECUTO PELO CLIPER 5.3 E BEM RAPIDO VARIAS VEZES --
---- PODE SER FALHA DO XHARBOUR OU BUG ????

Enviado: 04 Mar 2008 00:21
por Luciano Bonfim
acredito ser uma falha, comigo aconteceu também, mas vamos esperar os feras ai pra ver se tem alguma soluçäo

a soluçäo temporária para isso é ordenar a tabela pelo índice e ir varrendo o arquivo e dando um copy para outro DBF.

Enviado: 04 Mar 2008 08:27
por Itamar M. Lins Jr.
Luciano Bonfim escreveu:acredito ser uma falha, comigo aconteceu também, mas vamos esperar os feras ai pra ver se tem alguma soluçäo

a soluçäo temporária para isso é ordenar a tabela pelo índice e ir varrendo o arquivo e dando um copy para outro DBF.
Pode ser falha, tudo indica isso, mas o mais importante, não foi informado.

O código demonstrando o problema, versão do xharbour, etc...

Saudações
Itamar M. Lins Jr.

Enviado: 04 Mar 2008 19:12
por Luciano Bonfim
código:

Código: Selecionar todos


   PROCEDURE Main
      clear
      set dele on
      set date brit

      USE orcament
      SORT TO xxx_temp ON cod_obra, versao, item   
   
      wait"finalizado com sucesso (ou nao) rsrs, aperte qualquer tecla"
   RETURN
utilizo xharbour 1.0.0

quando executo o sort na primeira vez com o DBF todo desordenado fnciona bem rápido. se logo em seguida eu executar o programa novamente demora um século pra finalizar o sort.

Enviado: 04 Mar 2008 21:04
por Hasse
Boa noite colegas.

"Colei" o exemplo postado, introduzi um loop e fiz 4 SORT seguidos, de um arquivo com 250.000 registros, conforme o código abaixo:

Código: Selecionar todos

PROCEDURE Main 
clear 
set dele on 
set date brit 

do while .t.

   c_opcao := " "
   @ 10,10 say "Efetuar o SORT ? (S/N) " GET c_opcao pict "!" VALID c_opcao $ "SN"
   READ
   IF LASTKEY() = 27 .OR. c_opcao = "N"
      EXIT
   ENDIF

   ? time()

   USE paciente
   SORT TO ind ON p_nome, p_cod, p_matr    
   USE
    
   ? time()
   ?
   wait"finalizado com sucesso (ou nao) rsrs, aperte qualquer tecla" 
   ?
   ?

enddo

RETURN 
Resultados:
01:40 (min:seg)
01:41
01:41
01:40

Estou usando o xHarbour versão 1.1.0, baixado via CVS, dia 17/02/2008.

Portanto, pelos tempos apresentados, nada evidencia algum problema, defeito ou bug, nesta versão que estou usando.

Com a palavra os meus Mestres do Fórum (e de muitos.....).

Enviado: 04 Mar 2008 23:41
por Luciano Bonfim
beleza hasse... vou fazer esse teste aqui usando a CVS agora pra ver se dá o mesmo problema

Enviado: 09 Mar 2008 13:39
por sygecom
Bom apenas vou deixar minha opnião pessoal. Na minha opnião a versão da CVS do xharbour não deve ser usada para produção. Deve ser usada apenas para esses tipos de teste de compatibilidade.