El Índice no corresponde a la Tabla

599 views
Skip to first unread message

Carlos MauricioTorres Suárez

unread,
Mar 26, 2015, 8:59:49 AM3/26/15
to publice...@googlegroups.com
Tenemos nuestra aplicación en VFP 9 SP2 y SQL Server 2014 y al modificar la línea de una Factura en la última columna nos sale el error: El índice no corresponde a la tabla. Elimine el archivo de índice y vuelva a crear el índice.  Esto pasa despues de pasar a la seguna línea, en la primera no pasa nada.

Es extraño porque la tabla que se abre no tiene ningún índice.

Gracias por su Ayuda

Saludos

Idalberto Gonzalez

unread,
Mar 26, 2015, 10:04:55 AM3/26/15
to publice...@googlegroups.com

Aparentemente en el evento valid o cualquier otro evento de esa columna se esta invocando algun indice que no existe en esa tabla. Revisa a ver si existe algun "set order to "

Carlos MauricioTorres Suárez

unread,
Mar 26, 2015, 10:09:58 AM3/26/15
to publice...@googlegroups.com
Gracias Idalberto, ya voy a ver

Fidel Charny

unread,
Mar 26, 2015, 11:20:12 AM3/26/15
to publice...@googlegroups.com
No pones el número de mensaje de error. Ese mensaje aparece cuando se abre una tabla dbf que tiene un cdx corrupto (o directamente vacío).
Si fuera un SET ORDER o INDEXSEEK, el mensaje sería que la etiqueta no existe o que la tabla no tiene ningún orden establecido.
Cuando hablas de pasar a la segunda línea, tal vez te refieras a un control grid (me imagino que AllowCellSelection=.F. ). Si es así, el problema puede estar generándose en el AfterRowColChange (o programa llamado ahí). Posiblemente no tenga que ver con el cursor del grid, sino con alguna tabla que se use para relacionar con el cursor.

Carlos MauricioTorres Suárez

unread,
Mar 26, 2015, 11:52:15 AM3/26/15
to publice...@googlegroups.com
El mensaje de error es el 114

Gracias Fidel, saludos.

Fidel Charny

unread,
Mar 26, 2015, 3:11:40 PM3/26/15
to publice...@googlegroups.com

"A damaged structure within an index file has been detected. Delete the index file (.CDX or .IDX) and recreate it."

Este es el error al que me refería. Tal vez ya lo solucionaste.

Si no, te comento: apunto al AfterRowColChange en un grid con AllowCellSelection=.F. porque es lo que se puede disparar al pasar a un registro distinto del que se enfocó en primer término. Si el Grid es AllowCellSelection=.T. (default), habrá que pensar en otra cosa porque AfterRowColChange se dispara también en el primer enfoque. De todos modos, usas tablas dbf además de SQL Server?

Carlos MauricioTorres Suárez

unread,
Mar 26, 2015, 9:00:24 PM3/26/15
to publice...@googlegroups.com
Justamente Fidel, el problema está en un Grid, donde se actualizan las líneas de la factura.

Gracias, saludos

Carlos MauricioTorres Suárez

unread,
Mar 26, 2015, 9:00:44 PM3/26/15
to publice...@googlegroups.com

Carlos MauricioTorres Suárez

unread,
Mar 26, 2015, 9:03:51 PM3/26/15
to publice...@googlegroups.com
No usamos tablas DBF son solamente tablas SQL Server Fidel

Saludos

mpulla

unread,
Mar 26, 2015, 9:36:14 PM3/26/15
to publice...@googlegroups.com
Hola Carlos.

Y como asocias un grid a una tabla Sql Server?

El error es de VFP no de Sql Server, mira el cursor o vista que tienes asociada al grid..

Saludos.
Mauricio

Fernando D. Bozzo

unread,
Mar 27, 2015, 5:00:49 AM3/27/15
to publice...@googlegroups.com
Buenos días Carlos:

Viendo el error que reportas y los datos que das me surge una duda: ¿sos el programador del sistema o el usuario del mismo?
Es que, dependiendo de qué lado estés, las respuestas pueden variar, y siempre es mejor tratar directamente con el programador de la aplicación.

Te comento lo que me lleva a preguntarte esto sobre tu mensaje original:

>Tenemos nuestra aplicación en VFP 9 SP2 y SQL Server 2014 y al modificar la línea de una Factura en la última columna nos sale el error: El índice no corresponde a la tabla.

Estás asumiendo que todos saben lo que hay en la última columna


>Elimine el archivo de índice y vuelva a crear el índice.
=> ???

¿Programación por prueba y error a ver que pasa? Esto solo se le puede ocurrir a un usuario.



>Esto pasa despues de pasar a la seguna línea, en la primera no pasa nada.

Nuevamente, estás asumiendo que todos sabes qué es lo que estás viendo en la primera y segunda línea

>Es extraño porque la tabla que se abre no tiene ningún índice.  => ???

Nuevamente, ¿no sabes si se crea un archivo índice al vuelo? ¿Y entonces el índice que eliminaste antes de que era?

De verdad, si es así como hacen los programas, creo que no es de extrañar que fallen.

Carlos MauricioTorres Suárez

unread,
Mar 27, 2015, 3:43:57 PM3/27/15
to publice...@googlegroups.com
Nosotros somos los creadores del sistema, cuando el error nos salía con tablas DBF, no había problema porque sabemos cómo reparar, pero el error se produce con tablas SQL Server y no sabemos cómo crear el índice que está dañado.

Gracias, saludos.

Fernando D. Bozzo

unread,
Mar 27, 2015, 3:52:50 PM3/27/15
to publice...@googlegroups.com
Carlos, no dudo de que sea vuestro el sistema. Lo que intento decirte es que en vez de preguntar al foro sobre un programa que desconoce, es mejor hablar con el programador que hizo el cambio de tablas locales a SQL y preguntarle dónde crea ese índice y por qué.

Creo que eso es mucho más lógico, útil y rápido que andar borrando índices sin sabér por qué, ni dónde se crean ni qué proceso los crea.
Es que, sinceramente, el que ha hecho la programación tiene que conocer estas cosas perfectamente, porque si no es así, entonces les estaba funcionando de milagro.

Es imposible que no sepan esto.


Saludos.-

Fidel Charny

unread,
Mar 27, 2015, 6:38:01 PM3/27/15
to publice...@googlegroups.com
Lo que no entiendo es por qué te da un error 114 de Visual Fox:


A damaged structure within an index file has been detected. Delete the index file (.CDX or .IDX) and recreate it.

 

Antonio Meza

unread,
Mar 27, 2015, 8:17:04 PM3/27/15
to publice...@googlegroups.com
Habla de un indice dañado y que usa SQL server, pero no dice como se conecta a SQL server, si usa cusrosAdaptar, vistas remotas, SPT,, de que forma traes el cursor a VFP?  y al parecer obtiene el cursor de X forma y luego de manera local esta creando un indice y ese indice es el que esta fallando. pero sin mucha información es solo adivinar.

saludos
Antonio Meza

Carlos MauricioTorres Suárez

unread,
Mar 28, 2015, 9:25:15 AM3/28/15
to publice...@googlegroups.com
Ya está resuelto, le quitamos las instrucciones del Lost Focus del último casillero y funcionó sin problemas, muchas gracias por su ayuda.

Saludos

Fidel Charny

unread,
Mar 28, 2015, 11:05:21 AM3/28/15
to publice...@googlegroups.com
Misterio a la Orden.

Fernando D. Bozzo

unread,
Mar 28, 2015, 1:55:14 PM3/28/15
to publice...@googlegroups.com
Vaya! programación por prueba y error! Si no funciona borrar el índice, ¡borremos el código!

Si ya creía yo que borrando o comentando los métodos uno a uno se iba a encontrar el problema.

Esto es análisis del bueno

La otra solución era, como propuso otro compañero, ir borrando "muñequitos" del vcx/scx  >:)

Carlos Miguel FARIAS

unread,
Mar 28, 2015, 6:40:49 PM3/28/15
to Grupo Fox
Fernando: Eso se llama método científico TumTum, apoyado en investigación estadística aplicando la proyección del ojímetro.
El método de programación es KIYSSS. O Keep it you, stupid, stupid, stupid
Saludos: Miguel, La Pampa (RA)
Reply all
Reply to author
Forward
0 new messages