Index on str

Post Reply
User avatar
Sebastián Almirón
Posts: 125
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Index on str

Post by Sebastián Almirón »

Hola a todos.

Tengo un problema de locos que quizás ya se haya comentado en este foro, pero que no lo veo por ningún lado.

Uso una dbf con indices cdx y le hago:
index on str(numero,8) TAG usuwebnu

El caso es que al utilizarla y hacerle un go bottom, se me va a un registro con número 10043 cuando existe otro registro con numero 99999000

Si el indice lo creo con FoxPro con el mismo formato va bien.

¿ Que me he perdido de pasar de 16 a 32 bits ?

Saludos
User avatar
Sebastián Almirón
Posts: 125
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Post by Sebastián Almirón »

Bueno el simbolo ese tan mono es coma ocho cierraparentesis.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Sebastián,

Estás usando Harbour ó xHarbour ?

Podrias proporcionar un ejemplo pequeño y autocontenido que reproduzca el comportamiento erróneo sin usar FWH ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

use clientes new shared
cAlias := alias()
index on strzero( field->numero, 7 ) tag 1 TO (cAlias)

dbselectArea(cAlias)
dbgobottom()
browse()

nNnumero := 1950

dbseek( strzero(nNumero, 7) )
browse()





saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

César,

Ese ejemplo no es el caso que comenta Sebastián.

Aqui hay un ejemplo completo, pero funciona bien:

Code: Select all

function Main()

   DBCreate( "test.dbf", { { "code", "N", 8, 0 } } )

   USE test
   INDEX ON Str( field->code, 8 ) TO test

   APPEND BLANK
   field->code = 99999000

   APPEND BLANK
   field->code = 5555

   APPEND BLANK
   field->code = 10043

   GO TOP
   MsgInfo( field->code )

   GO BOTTOM
   MsgInfo( field->code )

   USE

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Sebastián Almirón
Posts: 125
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Post by Sebastián Almirón »

Hola Antonio.

Ya está solucionado.
El problema estaba en que se me había olvidado borrar antes el indice CDX.

Gracias y perdón por las molestias.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Sebastián,

me alegro de que esté solucionado :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply