La Web del Programador: Comunidad de Programadores
 
    Pregunta:  14745 - INDICES EN RED
Autor:  Fabio Adolfo Maldonado Becerra
Quisiera saber si existe alguna forma de hacer que los indices (NTX) bajo red sean más consistentes; pues al haber más de dos usuarios los índices se quiebran con una facilidad increíble comprometiendo seriamente la seguridad en la información. Quisiera saber qué mecanismo, método, procedimiento ó similar puedo aplicar para corregir esta falencia.

Mi sistema se encuentra desarrollado en Clipper 5.2 bajo plataforma Windows 98 SE

  Respuesta:  Francisco Prado
Y aparte de las dos buenas recomendaciones anteriores, cuando actualices las bases de datos uitiliza la funcion dbcommit() o dbcommitall() despues de agregar y actualizar un registro por ejemplo:

if FileLock()
append blank
field->V1 =" XYZ"
dbcommit()
dbunlock()
endif
o
if RecLock()
field->V1 =" XYZ"
dbcommit()
dbunlock()
endif

de esta manera se fuerza la escritura a disco tando de los dbfs como de los indices....

  Respuesta:  Renan Zapata
Me resulta un poco rara tu pregunta, pero intentare reswponderte:
1.- Los indices de clipper son sensibles unicamente a los fallos de comunicacion existentes en las redes producto de fluctuaciones de corriente, apagado de equipos sin salir de la aplicacion o falla de conexion de red.
2.- Tambien se genera inconsistencia si existe la posibilidad de que la clave del indice en algun registro tenga un valor en blanco, lo que provocaria un cambio virtual de la longitud de la clave entre uno y otro registro.- Sin-embargo esto es un error de programacion.
3.- Las redes Windows, a los fines de lograr velocidad, tienden a dejar mucho tiempo la informacion en los buffers de red y a veces se pierden.- Tengo mas de 3000 copias de una aplicacion, corriendo en redes y rara vez fallan; Sinembargo me he dado cuenta que si una maquina con Win esta conectada a una red Novell, aumenta dramaticamente la probabilidad de fallos; Igualmente en aquellos lugares donde hay fluctuaciones de electricidad.

Saludos
Renan

  Respuesta:  José Revoredo
Asegurate que todas tus rutinas de tu sistema que actualizan informacion siempre abran todos los indices que creastes para tu archivo.

Es un error muy comun que un archivo que se puede modificar por dos pantallas diferentes, no se revisó que los indices de ultima creación que hiciste no los abriste en los dos sitios.

Si tienes 8 indices por un archivo que vas a borrar registros o crear o modificar, debes abrir los 8 siempre aunque no vayas usar mas que el orden del primero.

Recuerda por otro lado que Clipper segun la version tiene un numero máximo de índices abribles por archivo.

Por otro lado, revisa que no modifiques llaves de un archivo desde un tbrowse, sin haber efectuado los controles correspondientes.

Espero haberte ayudado.

José Revoredo
Lima-Perú