Indexando com Six2
Enviado: 24 Mar 2005 17:09
Montei um programa à parte para testar a funcionalidade do Six2. Porém deparei com alguns problemas. No sistema antigo (ntx), eu usava uma função q mostrava o andamento da indexação, sendo q esta função era anexado no indice. Também fiz um laço para não ficar repetindo o INDEX ON (tenho 50 arquivos, com 200 indices). Fiz a mesma coisa com o NSX, porém o arquivo gerado só apresenta o último índice. O objetivo de mostrar o andamento da indexação é para não ficar parado na tela como se tivesse travado. Pergunto :
1 - Tem como melhorar a rotina, até para ficar mais rápida (antes com NTX 4min, hoje com NSX 2min com a função, 50s sem a função) ?
2 - O comando ordcondset não é compatível com o exospace p/ clipper 5.2e
3 - O erro Argument error : ORDCREATE tem alguma coisa haver com a mudança de ntx p/ nsx ?
#include "SIXNSX.CH"
RddSetDefault("SIXNSX")
clear
ferase('f:\ols\teste\duplicat.nsx')
use f:\ols\teste\duplicat.gif new exclusive
@9,9 to 15,70
@11,10 say padc('Limpeza da tabela em andamento...',60)
pack
@11,10 say padc('Limpeza concluida. Indexacao em andamento...',60)
aux1:={'loja+numero+prog(x,aux1)','loja+cliente+dtos(vencimento)+prog(x,aux1)',;
'loja+dtos(vencimento)+numero+prog(x,aux1)',;
'loja+vendedor+dtos(vencimento)+prog(x,aux1)',;
'loja+banco+dtos(emissao)+numero+prog(x,aux1)',;
'loja+banco+dtos(pagamento)+numero+prog(x,aux1)',;
'loja+banco+dtos(vencimento)+prog(x,aux1)',;
'loja+vendedor+dtos(pagamento)+prog(x,aux1)',;
'loja+dtos(pagamento)+prog(x,aux1)',;
'loja+pedido+prog(x,aux1)','loja+dtos(emissao)+prog(x,aux1)',;
'nosso+prog(x,aux1)'}
for x = 1 to len(aux1)
aux3 = aux1[x]
index on &aux3 tag x
next
function prog(arg1,arg2)
*-------
local local1
local1:= recno()/lastrec()*100
@13,10 say 'Indexando : '+strzero(arg1,if(arg1>9,2,1),0)+' de '+strzero(len(arg2),if(len(arg2)>9,2,1)
@13,55 say transform(local1,"@E 999")+'% concluido'
return ""
1 - Tem como melhorar a rotina, até para ficar mais rápida (antes com NTX 4min, hoje com NSX 2min com a função, 50s sem a função) ?
2 - O comando ordcondset não é compatível com o exospace p/ clipper 5.2e
3 - O erro Argument error : ORDCREATE tem alguma coisa haver com a mudança de ntx p/ nsx ?
#include "SIXNSX.CH"
RddSetDefault("SIXNSX")
clear
ferase('f:\ols\teste\duplicat.nsx')
use f:\ols\teste\duplicat.gif new exclusive
@9,9 to 15,70
@11,10 say padc('Limpeza da tabela em andamento...',60)
pack
@11,10 say padc('Limpeza concluida. Indexacao em andamento...',60)
aux1:={'loja+numero+prog(x,aux1)','loja+cliente+dtos(vencimento)+prog(x,aux1)',;
'loja+dtos(vencimento)+numero+prog(x,aux1)',;
'loja+vendedor+dtos(vencimento)+prog(x,aux1)',;
'loja+banco+dtos(emissao)+numero+prog(x,aux1)',;
'loja+banco+dtos(pagamento)+numero+prog(x,aux1)',;
'loja+banco+dtos(vencimento)+prog(x,aux1)',;
'loja+vendedor+dtos(pagamento)+prog(x,aux1)',;
'loja+dtos(pagamento)+prog(x,aux1)',;
'loja+pedido+prog(x,aux1)','loja+dtos(emissao)+prog(x,aux1)',;
'nosso+prog(x,aux1)'}
for x = 1 to len(aux1)
aux3 = aux1[x]
index on &aux3 tag x
next
function prog(arg1,arg2)
*-------
local local1
local1:= recno()/lastrec()*100
@13,10 say 'Indexando : '+strzero(arg1,if(arg1>9,2,1),0)+' de '+strzero(len(arg2),if(len(arg2)>9,2,1)
@13,55 say transform(local1,"@E 999")+'% concluido'
return ""