como saber si el indice esta bien con su base de datos

como saber si el indice esta bien con su base de datos

Postby Patricio Avalos Aguirre » Wed Oct 25, 2017 9:40 pm

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
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: como saber si el indice esta bien con su base de datos

Postby Rick Lipkin » Wed Oct 25, 2017 9:54 pm

Patricio

Just curious .. I hope you are using the compound Cdx and not a single or multiple Idx(s) ? If you are using Idx .. only the OPEN index will be updated .. otherwise using Cdx .. when you complete an Append or Edit a record .. are you issuing a DbCommit() ?

DbCommitt() is a 'hard disk' write which also forces the ( compound ) Cdx index to be updated as well... especially in a multi-user application.

Rick Lipkin
User avatar
Rick Lipkin
 
Posts: 2608
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: como saber si el indice esta bien con su base de datos

Postby hmpaquito » Thu Oct 26, 2017 7:09 am

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.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: como saber si el indice esta bien con su base de datos

Postby karinha » Thu Oct 26, 2017 12:08 pm

Code: Select all  Expand view

   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
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7202
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: como saber si el indice esta bien con su base de datos

Postby karinha » Thu Oct 26, 2017 3:05 pm

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.


hmpaquito, algo asi?

Code: Select all  Expand view

#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
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7202
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 9 guests