Hola.
Quisiera saber si existe alguna función que pregunte al índice CDX por una clave y devuelva un array de registros que apuntan a esa clave.
Un saludo
función para saber claves de una entrada CDX
función para saber claves de una entrada CDX
Paco García
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: función para saber claves de una entrada CDX
SELECT (laTabla)
SET ORDER TO (elIndice)
aResult := Array()
dBSeek( cClaveABuscar )
WHILE !Eof() .AND. OrdKeyVal() == cClaveABuscar
aAdd( aResult, Recno() )
SKIP
ENDDO
SET ORDER TO (elIndice)
aResult := Array()
dBSeek( cClaveABuscar )
WHILE !Eof() .AND. OrdKeyVal() == cClaveABuscar
aAdd( aResult, Recno() )
SKIP
ENDDO
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Re: función para saber claves de una entrada CDX
O bien, quizás este ejemplo te sirva para lo que buscas
http://forums.fivetechsupport.com/viewt ... 63#p187645
http://forums.fivetechsupport.com/viewt ... 63#p187645
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: función para saber claves de una entrada CDX
Hola, gracias por las respuestas.
Así es como lo hice:
En todo caso, creo que debe de poderse sacar la información directamente del índice de alguna forma.
El índice debe de guardar un conjunto de valor -> nRecno para poder acceder a la información.
Eso sería genial sin tener que hacer búsquedas.
Un saludo
Así es como lo hice:
Code: Select all
*****************************************************************************************************************************************
function aGetDetails( cCode, cFieldName )
*****************************************************************************************************************************************
local nPos := FieldPos( cFieldName )
local aRet := {}
local nRecno := Recno()
local nOrder := IndexOrd()
DbSetOrder(1)
if DbSeek( cCode, .t. )
do while fieldGet( nPos ) == cCode
aadd( aRet, Recno() )
DbSkip()
enddo
endif
DbGoto(nRecno)
DbSetOrder( 0 )
return aRet
El índice debe de guardar un conjunto de valor -> nRecno para poder acceder a la información.
Eso sería genial sin tener que hacer búsquedas.
Un saludo
Paco García