Aparece Mensage INDEX TAG IS NOT FOUND despues de "saves"

717 views
Skip to first unread message

Misael Rocha P

unread,
Apr 27, 2013, 11:41:22 AM4/27/13
to publice...@googlegroups.com
Buenos dias a todos,
tengo una situacion que no comprendo, pues al guardar 1 registro me lo guarda bien, en seguida vuelvo a guardar otro registro y bien tambien, pero al tercer registro qeu intento guardar me manda el error INDEX TAG is not found a que se debe? estuve leyendo que hay que indexarlo nuevamente por que??? o hay alguna otra alternativa?
 
 
Saludos y Gracias.

Misael Rocha P

unread,
Apr 27, 2013, 12:29:42 PM4/27/13
to publice...@googlegroups.com
Alguien que me pueda ayudar con esta situacion, se lo agradeceria mucho por favor!!!
 
Saudos. 

Analyzer

unread,
Apr 27, 2013, 12:44:28 PM4/27/13
to Comunidad de Visual Foxpro en Español
Como (codigo) y cuando haces tus indexaciones?...

Según aprendí en este foro, solo se debe indexar una vez en la vida.

Cuando se hace uso de la tabla solo se indica la etiqueta a usar.

El CDX es un archivo que por decirlo así contiene "todas las formas de ordenamiento" o etiquetas dentro de el.

Los reindexos solo se deben hacer cuando se corra una utilería del sistema para mantenimiento y en modo exclusivo, nadie mas debe estar usando la base.




Saludos!

Misael Rocha P

unread,
Apr 27, 2013, 12:59:44 PM4/27/13
to publice...@googlegroups.com
Hola Analyzer, buenas tardes un gusto verte por aca, Gracias,
los indices estan creados en la tabla, no uso codigo para indexarlos solo lo unico es la seleccion de la tabla y el ordenamiento
 
select dbf_pagos
set order to id_consecutivo
go bottom

y los primeros 2 registros me los crea muy bien
el tercero es cuando me marca index tag is not found...
 
como vez!!!
 
Saludos.

GeoSys Diseño de Software

unread,
Apr 27, 2013, 1:32:58 PM4/27/13
to Comunidad de Visual Foxpro en Español
Miguel, veo que trabajas con tablas nativas, entonces dinos como abres las tablas:
¿Con USE o en el entorno del formulario?


select dbf_pagos
set order to id_consecutivo
go bottom

Para cual tabla está activa en ese momento se utiliza ALIAS(), el índice no puede desaparecer a menos que otro proceso lo borre, pero debe estar la tabla en exclusiva.

Otra opción de que no lo encuentre es que estés en otra tabla y estés ordenando pensando que estás en la tabla dbf_pagos, o que otro proceso esté cerrando la tabla.

Depende como tienes estructurado tu programa, 

Es muy difícil saber que pasa exactamente, por eso te pregunto como abres la tablas.


Saludos

Anthony Contreras Peralta

Costa Rica.







Arnaldo Toledano

unread,
Apr 27, 2013, 2:16:26 PM4/27/13
to publice...@googlegroups.com
Creo que el error proviene por no estar actualizado el indice.
Cuando trabajas con tablas nativas e indices debes tener muy presente lo siguiente.
1.- Abrir cada uno de  la tablas en una SOLA FUNCION para todo el sistema.
Por ejemplo la función ABRECLIENTES() abre la tabla de clientes CON TODOS SUS INDICES.
Supongamos que tenes una tabla con 4 indices.
1.1.- Abrís la tabla SOLO con tres Indices.
1.1.1- Haces actualizaciones
1.1.2.- Cerras la tabla.
1.2.1-Abrís la tabla con cuatro indices.
    Hay un cuarto INDICE que no esta actualizado.
1.2.2. Buscas un dato, donde inverviene un campo incluido en el Indice 4, TE DA ERROR.

Este error no ocurre si abrís SIEMPRE la tabla y sus indices en UNA SOLA FUNCIÓN.

2.- A los efectos de un buen funcionamiento del sistema, cada día al abrir tu sistema
hace una reconstrucción de indices.
Cuando yo utilizaba DBF con indices tenia una tabla que contenía un solo campo con una fecha
Al iniciar el sistema en cualquier maquina hacia lo siguiente.
Primero VERIFICABA el punto 3.-
Es decir QUE NADIE UTILIZA EL SISTEMA, caso contrario una segunda PC que ingresa al SISTEMA
va a querer hacer la reindexacion del los archivos.

If Date()<>Tabla_Fecha.UltimaFecha
   Reconstruir Indices (procesos de reconstrucción de indices)
   Replace UlimaFecha With Date()
endif
Seguís con todos tus sistemas.

3.- En casos de SISTEMAS MULTIUSUARIOS, es conveniente tener al menos UN ARCHIVO que se mantenga
abierto en todo el SISTEMA todo el tiempo que este en funcionamiento el mismo.
De esta manera, si quieres saber SI ALGUNA PC esta UTILIZANDO el sistema, preguntas si el ARCHIVO en cuestión
puede ser UTILIZADO DE MANERA EXCLUSIVA, si la repuesta es NO, alguien esta utilizando el sistema.



Espero te sirva.

Arnaldo Toledano
--
Arnaldo Toledano Tesys Informática Córdoba Argentina

GeoSys Diseño de Software

unread,
Apr 27, 2013, 2:23:07 PM4/27/13
to Comunidad de Visual Foxpro en Español
Si Arnaldo, tienes razón, se  me olvidó preguntar que clases de índices utiliza, ya que si son estructurados, al abrir la tabla también se abren automáticamente todos sus índices y solamente se ordena con SET ORDER.

Pero si no utiliza índices estructurados pues ahí sí tendría que abrir todos sus índices manualmente al abrir las tablas.



Carlos Miguel FARIAS

unread,
Apr 27, 2013, 5:23:39 PM4/27/13
to Grupo Fox

Qué guardas? Mejor dicho con que? Son registros nuevos o actualizaciones usas insert de SQL o append blank y replace, update de SQL, gather memvar.
Que usas?
Saludos: Miguel, La Pampa (RA)

Misael Rocha P

unread,
Apr 28, 2013, 3:09:27 AM4/28/13
to publice...@googlegroups.com
Buenas Noches de Madrugada, Gracias a todos, le comento que tengo
 
Les platico, Las tablas las jalo del entorno de datos son 4 las que estan en el formulario, 
 
dbf_clientes
dbf_contratos
dbf_cobranza
dbf_pagos
 
despues de capturar, guarda el contrato, luego en cobranza y en seguida los pagos o cutoas que son 14 todo esto son registros nuevos uno para contratos, otro para cobranza y 14 para dbf_pagos la tabla clientes existe en el formulario pues
cargo los clientes que estan capturados para generarles un contrato nuevo o prestamo nuevo que es lo mismo uso el

 

CURSORSETPROP("Buffering", 5,"dbf_contratos") Y asi para cada tabla mencionada a excepcion de clientes y lo guardo con el tableupdate

 

 

Fidel Charny

unread,
Apr 28, 2013, 11:41:52 AM4/28/13
to publice...@googlegroups.com, arnaldo....@gmail.com
Si utilizas índices estructurales compactos no necesitas abrirlos. Cuando abres la tabla con USE se abre también la tabla de índices y ella contiene todas las etiquetas. Se podrían desactualizar en caso de un fallo eléctrico o un ShutDown forzado, pero no desaparecen las etiquetas. 

TAG TagName

Specifies the name, or tag, for the index generated by eExpression and stored in a compound index (.cdx) file. Tag names must begin with a letter or an underscore (_) and can consist of any combination of up to 10 letters, digits, or underscore characters.

id_consecutivo tiene 14 caracteres. Como lo crea con el Wizard seguramente se lo recorta a diez caracteres.
Si lo creara por programa le daría un error de etiqueta no válida (tag name is too long)

Misael Rocha P

unread,
Apr 28, 2013, 2:30:09 PM4/28/13
to publice...@googlegroups.com, arnaldo....@gmail.com
El id_consecutivo lo agregue manualmente,pero entonces el problema radica en la cantidad de caracteres de la etiqueta, sin embargo no me ha mandado el error tag name is too long) voy a probar cambiando el tamaño ajustandolas a 10 y les digo que sucedió
 

Misael Rocha P

unread,
Apr 28, 2013, 4:03:45 PM4/28/13
to publice...@googlegroups.com
Buenas Tardes, como estan, les platico que ya estuvo solucionado esta incidencia, basto con cambiar el tamaño de las etiquetas para que los indices de igualmanera tuvieran el mismo tamaño de 10 caracteres, modifique lo correspondiente en el formulario y realice la prueba de fuego con mas de 10 registros y no marco mas el error.
 
Como siempre les agradezco mucho su ayuda, apoyo, paciencia, y gusto por éste foro, un abrazo a todos.
 
Saludos.

Analyzer

unread,
Apr 29, 2013, 4:36:26 PM4/29/13
to Comunidad de Visual Foxpro en Español, Arnaldo Toledano
Es mejor no usar los wizards?..

En mi caso, jamás los usé..


Saludos!

Misael Rocha P

unread,
Apr 30, 2013, 1:14:48 AM4/30/13
to publice...@googlegroups.com
Hola analyze buenas noches, fijate que yo tampoco he usado nunca los wizards y no presté atencion a ese detalle de la cantidad de caracteres. ya no mas volvera a suceder!! leccion aprendida.
 
Un Saludo Gracias.
Reply all
Reply to author
Forward
0 new messages