Indexar fechas

30/12/2004 - 16:16 por Oscar Bonet | Informe spam
Saludos Fox_eros
Como hago para crear un indice compuesto (cdx) llamado fec_cat_pl de varios
campos? es decir:
Fecha + Codigo1 + Codigo2

En donde el campo fecha es de tipo Date, Codigo1 es de tipo Numerico y
Codigo2 es de tipo Numerico.

Realizo la consulta de la siguiente manera:
SEEK {2004/12/14} + 36 + 106 ORDER tag fec_cat_pl
el registro existe, pero me arroja .f. y si no existe el registro, el me
arroja .t..

Espero me puedan ayudar.

Gracias

Preguntas similare

Leer las respuestas

#1 Alex Feldstein
30/12/2004 - 19:45 | Informe spam
On Thu, 30 Dec 2004 10:16:54 -0500, "Oscar Bonet"
wrote:

Saludos Fox_eros
Como hago para crear un indice compuesto (cdx) llamado fec_cat_pl de varios
campos? es decir:
Fecha + Codigo1 + Codigo2

En donde el campo fecha es de tipo Date, Codigo1 es de tipo Numerico y
Codigo2 es de tipo Numerico.



Index on DTOS(Fecha) + STR(Codigo1) + STR(Codigo2)



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP
Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(address munged with ROT-13)

Blog: http://www.bloglines.com/blog/AlexFeldstein
Website: http://feldstein.net
Respuesta Responder a este mensaje
#2 david alarcon
31/12/2004 - 03:53 | Informe spam
hola

INDEX ON alltrim(str(year(fecha))+'/
'+alltrim(str(month(fecha))+'/'+alltrim(str(day(fecha))+'
'+alltrim(str(codigo1)+' '+alltrim(str(codigo2)) TAG tutag OF tucdx.

espero te sirva.

Saludos

David





[quote][B]Oscar Bonet Escribió:[/b]

<pre>
Saludos Fox_eros
Como hago para crear un indice compuesto (cdx) llamado fec_cat_pl de varios
campos? es decir:
Fecha + Codigo1 + Codigo2

En donde el campo fecha es de tipo Date, Codigo1 es de tipo Numerico y
Codigo2 es de tipo Numerico.

Realizo la consulta de la siguiente manera:
SEEK {2004/12/14} + 36 + 106 ORDER tag fec_cat_pl
el registro existe, pero me arroja .f. y si no existe el registro, el me
arroja .t..

Espero me puedan ayudar.

Gracias

</pre>
[/quote]

Con Fox, todo se puede !!

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
Respuesta Responder a este mensaje
#3 Alex Feldstein
31/12/2004 - 04:49 | Informe spam
On Thu, 30 Dec 2004 18:53:50 -0800, "david alarcon"
wrote:

hola

INDEX ON alltrim(str(year(fecha))+'/
'+alltrim(str(month(fecha))+'/'+alltrim(str(day(fecha))+'
'+alltrim(str(codigo1)+' '+alltrim(str(codigo2)) TAG tutag OF tucdx.

espero te sirva.

Saludos



David

*Nunca* debes usar indices (tags) de largo variable.
Por ello Alltrim() no debe usarse en un indice. VFP no está diseñado
para lidiar con ellos y sólo te traerán problemas.

Mejor es DTOS(fecha)+STR(codigo1)+STR(codigo2)


Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP
Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(address munged with ROT-13)

Blog: http://www.bloglines.com/blog/AlexFeldstein
Website: http://feldstein.net
Respuesta Responder a este mensaje
#4 David Diaz
31/12/2004 - 09:14 | Informe spam
por que motivo,... descompones la fecha para luego armarlo en aaaammdd,. a
la funcion dtos no le afecta el "set date" , ni el "set century",... siempre
lo hara aaaammdd,,,

pero hay una gran diferencia con la logica que pones,,

03/02/2004 con dtos seria 20040203
03/02/2004 con tu logica y el alltrim seria 200423

y ahi si vas tener un gran problema,... cuando quieras buscarlo, y
ordenarlo por ese indice





"david alarcon" escribió en el mensaje
news:
hola

INDEX ON alltrim(str(year(fecha))+'/
'+alltrim(str(month(fecha))+'/'+alltrim(str(day(fecha))+'
'+alltrim(str(codigo1)+' '+alltrim(str(codigo2)) TAG tutag OF tucdx.

espero te sirva.

Saludos

David





[quote][B]Oscar Bonet Escribió:[/b]

<pre>
Saludos Fox_eros
Como hago para crear un indice compuesto (cdx) llamado fec_cat_pl de


varios
campos? es decir:
Fecha + Codigo1 + Codigo2

En donde el campo fecha es de tipo Date, Codigo1 es de tipo Numerico y
Codigo2 es de tipo Numerico.

Realizo la consulta de la siguiente manera:
SEEK {2004/12/14} + 36 + 106 ORDER tag fec_cat_pl
el registro existe, pero me arroja .f. y si no existe el registro, el me
arroja .t..

Espero me puedan ayudar.

Gracias

</pre>
[/quote]

Con Fox, todo se puede !!


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#5 david alarcon
01/01/2005 - 01:06 | Informe spam
Hola tocayo

Veo que omitiste los '/' y los ' ' que estan incluidos en la expresion de
indice, de tal forma que en esa logica no seria 200423, sino 2004/2/3 ,

Aunque estoy de acuerdo contigo, seria mejor opcion dtos()

Saludos

David



Con Fox, todo se puede !!

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida