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
-
- Posts: 989
- 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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
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 | Expand
*****************************************************************************************************************************************
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
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
Paco García