Página 1 de 1
Problema pra criar CDX
Enviado: 28 Set 2018 20:22
por JoséQuintas
Estou estranhando o comportamento.
Tenho a rotina de criar índices, sempre igual pra todos os arquivos e índices.
use arquivo
index on chave tag (nome)
index on chave2 tag (outro)
mas agora precisei usar pra arquivos em pastas.
use pasta\arquivo
o problema é que ao final da reindexação, somente uma única tag está dentro do CDX, para os arquivos em pasta diferente.
Alguma idéia?
Nota:
A rotina usa array pra TODOS os dbfs e TODOS os índices.
A única diferença é alguns arquivos com path no nome.
Problema pra criar CDX
Enviado: 28 Set 2018 20:35
por JoséQuintas
Código: Selecionar todos
SELECT 0
IF ! UseSoDbf( cDbfName )
RETURN .F.
ENDIF
FOR nCont = 1 TO Len( acIndice )
GrafTempo( "Criando " + acIndice[ nCont, 1 ] + IndexExt() )
SET INDEX TO // para usar for
GOTO TOP // para usar for
xCampo := acIndice[ nCont, 2 ]
IF Len( acIndice[ nCont ] ) == 2
INDEX ON &xCampo TAG ( ToTag( acIndice[ nCont, 1 ] ) ) TO ( cDbfName ) EVAL GrafInd()
ELSEIF Len( acIndice[ nCont ] ) == 3
INDEX ON &xCampo TAG ( ToTag( acIndice[ nCont, 1 ] ) ) TO ( cDbfName ) FOR &( acIndice[ nCont, 3 ] ) EVAL GrafInd()
ELSEIF Len( acIndice[ nCont ] ) == 4
INDEX ON &xCampo TAG ( ToTag( acIndice[ nCont, 1 ] ) ) TO ( cDbfName ) DESCEND EVAL GrafInd()
ELSEIF Len( acIndice[ nCont ] ) == 5
INDEX ON &xCampo TAG ( ToTag( acIndice[ nCont, 1 ] ) ) TO ( cDbfName ) UNIQUE EVAL GrafInd()
ENDIF
SET INDEX TO
//nRecOk += LastRec()
NEXT
USE
chmodFile( cDbfName + IndexExt() )
A rotina é sempre essa.
Apesar do chmodFile(), é no Windows.
Acrescentei o nome do arquivo de índice depois, pra ver se fazia diferença.
E Acrescentei o ToTag() pra não considerar path (a rotina vale pra IDX e CDX)
Dois itens do array
Código: Selecionar todos
IndexDbf( "B0600", "COBR B0600 Orcamento Obras", "COBR" )
IndexInd( "B06001", "Cod_Emp + Cod_Pi" )
IndexInd( "B06002", "Nome" )
IndexInd( "B06003", "Cod_Cli" )
IndexDbf( cPathDbf + "B2500", "PRD1 Produto Principal", "PRD1" )
IndexInd( cPathDbf + "B25001", "Cod_Pro" )
IndexInd( cPathDbf + "B25002", "Nome" )
IndexInd( cPathDbf + "B25003", "Substr( Nome, 21, 90 )" )
A única diferença é o path no nome do arquivo
é um único array com tudo, tudo no mesmo fonte.
Só sobra comportamento diferente com path.
Problema pra criar CDX
Enviado: 28 Set 2018 23:52
por Itamar M. Lins Jr.
Ola!
Tentou sem "TO (cDBFNAME)" é desnecessário.
Saudações,
Itamar M. Lins Jr.
Problema pra criar CDX
Enviado: 29 Set 2018 01:42
por JoséQuintas
Estava sem nome antes.
Problema pra criar CDX
Enviado: 29 Set 2018 18:12
por JoséQuintas
Resolvido.
Esqueci que são duas rotinas, e estava alterando só uma.
E o que atrapalhou foi a barra de path estilo Linux.
Ao entrar como parte da tag, todas as tags ficaram iguais.
Problema pra criar CDX
Enviado: 30 Set 2018 18:26
por asimoes
Quintas,
o que é esse comando "disp stat" desculpa a minha ignorância, isso é do harbour ?
Problema pra criar CDX
Enviado: 30 Set 2018 23:44
por alxsts
Olá!
asimoes escreveu:o que é esse comando "disp stat" desculpa a minha ignorância, isso é do harbour ?
Este é o famoso e ancestral comando
Display status do
dot prompt do dBASE.
Problema pra criar CDX
Enviado: 01 Out 2018 08:05
por JoséQuintas
Isso.
Que no meu dbase executa esta rotina:
Código: Selecionar todos
STATIC FUNCTION cmdListStatus()
LOCAL nCont, nCont2, nSelect := Select()
FOR nCont = 1 TO 255
IF Len( Trim( Alias( nCont ) ) ) != 0
SELECT ( nCont )
SayScroll()
SayScroll( "Alias " + Str( nCont, 2 ) + " -> " + Alias() + iif( nCont == nSelect, " ==> Actual Alias", "" ) )
FOR nCont2 = 1 TO 100
IF Len( Trim( OrdKey(nCont2 ) ) ) == 0
EXIT
ENDIF
SayScroll( " Tag " + OrdName( nCont2 ) + " -> " + OrdKey( nCont2 ) )
NEXT
IF Len( Trim( dbFilter() ) ) != 0
SayScroll( " Filter: " + dbFilter() )
ENDIF
IF Len( Trim( dbRelation() ) ) != 0
SayScroll(" Relation: " + dbRelation() + " Alias: " + Alias( dbRSelect() ) )
ENDIF
ENDIF
NEXT
SELECT ( nSelect )
SayScroll( "Current Path -> " + hb_cwd() )
SayScroll()
RETURN NIL
Problema pra criar CDX
Enviado: 01 Out 2018 20:44
por Itamar M. Lins Jr.
Ola!
Cadê o "modi stru" ?
Saudações,
Itamar M. Lins Jr.
Problema pra criar CDX
Enviado: 02 Out 2018 09:00
por JoséQuintas