Estimados
Hoy me ha pasado algo raro mi programa no localizaba un producto pero si estaba en la tabla y al parecer no se habia actualizado el indice
alguna forma de chequear si esta los indices correctos o corructos
utiliza DBF Y CDX
SELECT CADCLIEN
SET ORDER TO 01
IF ORDKEYCOUNT() # RECCOUNT()
VERIFY_CDX( "CADCLIEN" )
ENDIF
// Verifica .CDX
FUNCTION VERIFY_CDX( XNOMBREARQ )
MsgInfo( "Atencion... Problemas en el indice", "Atencion..." )
RETURN NIL
hmpaquito wrote:En su dia hice rutinas al respecto que fueron un desastre.
¿ Desastre ? Si, porque eran super lentas. Mucho mas lentas que reconstruir los indices.
Lo que hacia era comprobar que &( Indexkey(nTag) ) == OrdKeyVal() para cada registro y para cada tag del indice.
Luego pensé en hacerlo sólo con los últimos registros, porque serían los más susceptibles de estar desindexados...
Al final lo dejé como causa perdida.
#include "FiveWin.ch"
FUNCTION DISPLAYKEYS()
FIELD First
LOCAL cKey, cFirst, cLast, cAlias, nTag
USE Customer NEW
INDEX ON First TAG nTag TO LastFir
GO TOP
cAlias := ALIAS()
WHILE !EOF()
cKey := ( cAlias )->( ORDKEYVAL() ) // Get key
// value
cLast := LEFT(cKey, 20) // Get last
// name
cFirst := RIGHT(cKey, 20) // Get first
// name
IF &( Indexkey(nTag) ) == OrdKeyVal()
// NADA A HACER
ELSE
// ? cLast, cFirst
? "Problemas en el indice .CDX?"
RETURN NIL
ENDIF
DBSKIP()
SYSREFRESH()
ENDDO
CLOSE
RETURN NIL
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 79 guests