indices en cursor

1,888 views
Skip to first unread message

emr

unread,
Mar 29, 2011, 1:35:41 AM3/29/11
to Comunidad de Visual Foxpro en Español
Hola saludos a todos, mi pregunta es la siguiente:

Estoy generando un cursor para un informe que genero de 3 tablas, lo
quiero ordenar por nombre de cliente y fecha del documento de la
siguiente forma.

INDEX on nombcte+STR(YEAR(fecha))+STR(MONTH(fecha))+STR(DAY(fecha))
TAG factuynvtai ASCENDING

pero me marca un error "Tag name is too long" alguien me puede
orientar como es la sintaxis para generar indices de este tipo en
cursores, por que este mismo indice lo tengo en una tabla y no tengo
ningun problema.

Saludos y les agradezco mucho como siempre

Enrique Martinez Regalado
Puerto Vallarta, Jalisco, México

Enrique Martinez

unread,
Mar 29, 2011, 2:40:41 AM3/29/11
to Comunidad de Visual Foxpro en Español
Hola ya encontré el error, resulta que el nombre que le estoy dando al
indice tiene mas de 10 caracteres, asi que solo puse un nombre mas
corto al indice y listo.

Saludos y gracias a todos

Enrique Martinez

Luis Maria Guayan

unread,
Mar 29, 2011, 6:47:01 AM3/29/11
to publice...@googlegroups.com
Lo mismo puedes mejorar tu índice con

INDEX on nombcte+DTOS(fecha) TAG factuynvtai ASCENDING

El índice que tu creas tiene un error de lógica, ya que la "llave" será la misma para las siguientes fechas

"ENRIQUE" + 2011/11/9
"ENRIQUE" + 2011/1/19


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Oscar Calderon Fuentes

unread,
Mar 29, 2011, 9:02:27 AM3/29/11
to publice...@googlegroups.com
Solo un comentario:
 
Si el cursor lo creas con CREATE CURSOR es lícito indexarlo. Pero si es creado desde otra tabla o cursor a través de un SELECT - FROM, debería crearse ordernado utlizando la sentencia ORDER BY.

--
Oscar Calderon F.
 

Enrique Martinez

unread,
Mar 29, 2011, 10:29:48 PM3/29/11
to publice...@googlegroups.com
Gracias Luis Maria entendido y anotado, son de los puntos finos que
aveces uno pasa por alto.

Muchas gracias y lo tomaré en cuenta.

saludos

Enrique Martinez

El día 29 de marzo de 2011 04:47, Luis Maria Guayan
<luism...@gmail.com> escribió:

Enrique Martinez

unread,
Mar 29, 2011, 10:30:35 PM3/29/11
to publice...@googlegroups.com
Oscar Muchas gracias y efectivamente lo cree con el Create Cursor

Saludos

Enrique Martinez

El día 29 de marzo de 2011 07:02, Oscar Calderon Fuentes
<ocald...@gmail.com> escribió:

horacio villegas

unread,
Mar 30, 2011, 2:15:06 AM3/30/11
to publice...@googlegroups.com
en cursores si usas mas de 10 caracateres te manda error
saludos

Jose Zurita

unread,
Mar 30, 2011, 9:41:46 AM3/30/11
to PublicesvFoxpro
Mi estimados: lo que uso yo son Caursores ya ordenados y los genero asi:
select * from Cursor irder by nnumsol into cursor1

La otra forma es crear el curso así: Ojo, debo de crear el cursor usando el cursorsetproo Buffering=3 para poder cerar indices.

CREATE CURSOR Cursor1 (nnumsol I, dfechsol D,cunidad C(6),cusuent C(20), cusuenv C(20), npartida I, nnummue I,ccvelab C(18),;
              cdesc C(50), nancho N(5,2), leau L, leag L, lecu L, lefe L, leas L, lepb L, lezn L, lebi L, lesb L, todobien L, eliminado L)

CURSORSETPROP("Buffering", 3, "Cursor1")
INDEX ON Cursor1.nnumsol TAG numsol



> Date: Tue, 29 Mar 2011 20:30:35 -0600
> Subject: Re: [vfp] indices en cursor
> From: emr9...@gmail.com
> To: publice...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages