Indices en cursores

Jak
14 de Octubre del 2004
Hola, tengo un problema y quisiera saber si alguien puede ayudarme...

Necesito definirun indice en un cursor, lo que creia lograr utilizando el comando INDEX ON luego de haber utilizado CREATE CURSOR para crearel cursor. El problema es que más adelante (en otro método por ejemplo) cuando quiero utilizar dicho indice, fox7 me salta con el error 26, refiriendo a que la tabla seleccionada (en ese momento el cursor) no tiene índices.

Al que me pueda ayudar, mil gracias.

rdavidsm
14 de Octubre del 2004
Hola, lo que puedes hacer es verificar si el indice que necesitas está definido en la tabla o cursor de esta manera:

Select <Tabla>
lcExpIndex = "CODIGO"
lcNomIndex = "CODIGO"
llExiste = .F.
For lnIndex = 1 To 254
lcTag = Tag(lnIndex)
If !Empty(lcTag) Then
If Upper(Alltrim(Key(lnIndex))) == lcExpIndex
llExiste = .T.
lcNomIndex = lcTag
Exit
EndIf
EndIf
Next

If !llExiste Then
lcNomCdx = Sys(2015)
Index On &lcExpIndex Tag &lcNomIndex Of lcNomCdx
EndIf

If Seek(120,"<Tabla>",(lcNomIndex))
Messagebox("Encontró")
Else
Messagebox("No encontró")
EndIf

Espero te sirva, es lo que yo utilizo para realizar búsquedas con índices creados desde programación

Saludos.

David S.