Problema con un índice de un cursor.

359 views
Skip to first unread message

Miguel Ab

unread,
Jan 22, 2013, 7:22:31 AM1/22/13
to publice...@googlegroups.com
Hola.

Me está pasando una cosa muy rara y no encuentro casi información (y la que hay no me resuelve nada).

Tengo un cursor el cual ordeno con un índice:
INDEX ON &sCampo TAG nombreIndice DESCENDING

El caso es que algunas veces me da un error:
Error 110 ...
File must be opened exclusively.

He probado a usar un nombre aleatorio en el nombre del índice (in+8caracteres aleatorios) y aún así me da problemas.
INDEX ON &sField TAG &nombreIndice DESCENDING

El caso es que también me da problemas cuando intento borrarlo:
DELETE TAG &nombreIndice

¿Sabeis dónde está el problema?
Muchas gracias.
Saludos.
Miguel Ab.

sip...@gmail.com

unread,
Jan 22, 2013, 4:30:30 AM1/22/13
to publice...@googlegroups.com
Hola
Ese cursor lo creas con el atributo readwrite ?
No muestas la línea anterior de
INDEX ON &sCampo TAG nombreIndice DESCENDING

Pero pudiera ser que tengas selecionada otra tabla

En ese caso prueba seleccionando el cursor antes y luego indéxas

select micursor
INDEX ON &sCampo TAG nombreIndice DESCENDING

Saludos
Alexander Barreto
Venezuela
Enviado desde mi BlackBerry de Movistar

From: Miguel Ab <migue...@gmail.com>
Date: Tue, 22 Jan 2013 04:22:31 -0800 (PST)
Subject: [vfp] Problema con un índice de un cursor.
--
 
 

Luis Maria Guayan

unread,
Jan 22, 2013, 8:05:39 AM1/22/13
to publice...@googlegroups.com
Los cursores se crean y quedan abiertos por defecto como EXCLUSIVE. Tiene pinta de que no estás parado en el area de datos correspondiente, asegurate de seleccionar el area de datos correcta antes del comando INDEX o DELETE TAG

Ej:
SELECT (MiCursor)
INDEX ON MiCampo TAG MiTag DESCENDING


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

Miguel Ab. --
 
 

Fox Friend

unread,
Jan 22, 2013, 9:47:07 AM1/22/13
to publice...@googlegroups.com
Orales! No sabía que se podían indexar los cursores.

Una vez creado el índice, ya no es necesario volver a indexar con INDEX ON cada vez que se crea el cursor o sí sería necesario ?...

En las tablas me dijeron que los índices solo se crean una vez y de ahí solo se escoge la etiqueta de índice a usar con SET ORDER TO Mietiqueta.

Si los cursores quedan abiertos como exclusivos, no afectaría esto la operatitividad de un sistema multiusuario... Cuál sería el truco para que no afecten en multiusuario?..

Tendría que poner el set exclusive off cada vez?..

Saludos!

Ricardo Pina

unread,
Jan 22, 2013, 9:54:00 AM1/22/13
to Grupo VFP
Fox
 
Ceo que tienes que repasar el tema de cursores.
 
1.- Cada vez que creas el cursor tienes que generar el indice (Cuando lo cierras se destruye y el indice con él)
2.- No afecta la operabilidad ya que el cursor solamente lo tienes en memoria de tu sesión ( Nadie puede acceder a él)
 
Saludos


--
 
 



--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Fox Friend

unread,
Jan 22, 2013, 10:16:40 AM1/22/13
to publice...@googlegroups.com
Gracias Ing. Ricardo Pina,

Como ve, tengo mucho que aprender aún y no soy de los que tengan miedo a ser tachados de ignorante. El orgullo nunca me ha servido para aprender nada. 

Pero comentarios como el suyo ( que enseñan algo) me ayudan mucho.

Gracias infinitas!

Miguel Ab

unread,
Jan 22, 2013, 10:20:25 AM1/22/13
to publice...@googlegroups.com

Hola.

El cursor viene de un Grid (es para poder ordenar por las columnas del mismo) y no le tengo puesto nada más lo que pongo en la línea (voy a probar con el ReadLine). El caso es que me funciona bien, pero algunas veces me da el error que comento (por lo que probé a cambiarle el nombre a uno aleatorio).

Voy a probar a ver que pasa.

Gracias por las respuestas ...
Saludos.

Miguel Ab

unread,
Jan 22, 2013, 10:21:36 AM1/22/13
to publice...@googlegroups.com
Perdón ... voy a probar a ponerle el ReadWrite ... mezclo conceptos.

Saludos.

Miguel Ab

unread,
Jan 22, 2013, 11:28:56 AM1/22/13
to publice...@googlegroups.com
El READWRITE no funciona.
Lo curioso es que me da más problemas con el nombre aleatorio que con uno fijo.

Saludos.

Fox Friend

unread,
Jan 22, 2013, 12:02:06 PM1/22/13
to publice...@googlegroups.com
Miguel Ab,

Creo que es tiempo de pasar al segundo nivel:

Show your piece of code !!

Para que se te apoye..

Antonio Meza

unread,
Jan 22, 2013, 1:33:51 PM1/22/13
to publice...@googlegroups.com
Hola, y el cursor que muestras en el grid es para permitir modificar campos?

Te pregunto si solo es para mostrar y quieres que se ordene según la columna seleccionada  pues es mas fácil volver a crear el mismo cursor pero con la diferencia de la clausula ORDER BY

Select * From Mycursor Order By MyCampo into cursor MyCursor

Y te evitas generar los indices.

NOTA: Antes de recrear el cursor debes limpiar la propiedad del grid RecordSource = "" y una vez creado el cursor lo vuelves a asignar RecordSource = "MyCursor" para que el grid no pueda su configuración.

saludos

Miguel Ab

unread,
Jan 24, 2013, 12:27:48 PM1/24/13
to publice...@googlegroups.com
Hola gracias por las respuestas.

Perdón por la tardanza en responder ... pero estamos en pico de gripe y por lo visto yo hago cima ;-)

Básicamente quiero hacer lo que comenta Pedro Olivares en el enlace https://groups.google.com/forum/?fromgroups=#!topic/publicesvfoxpro/zTsoQ-xwG50 con la particularidad de que los dos métodos los tengo en la clase del grid (en lugar de tener uno en el form).

He probado con el INDEX que comentaba Pedro, pero en "algunos casos" me saca el error que indico al principio. Intentando la ordenación del cursor me da un error de que "Expression could not be evaluated". Antes de llegar a la línea que ordena el cursor del grid todos los valores son correctos (el campo, también he probado con el orden que ocupa el campo y el cursor) ... el RecordSource del grid lo pongo a "" (lo que provoca que el grid se quede en blanco).

Gracias por la ayuda.
Saludos
Miguel Ab

Reply all
Reply to author
Forward
0 new messages