Problemas de perdida de datos al trabajar con Tablas libres en ambiente multiusuario en Visual Fox

Buenas Tardes Expertos!!! He realizado una serie de sistemas
informáticos en visual foxpro 9 y en todos ellos utilizo tablas libres,
no base de datos. Últimamente desarrolle un sistema de personal que esta
alojado en un servidor de datos, donde acceden un mínimo de 10 usuarios
por día. El Sistema funciona perfectamente, solo que cuando hay algún
corte de luz o se baja inesperadamente el Servidor la tabla abierta se
daña y por ende se pierden todos los datos. Mi pregunta es, que método
de programación podría utilizar para que esto no me pase nuevamente o
tendría que utilizar base de datos?? Desde ya les agradezco por la
paciencia y la ayuda.-

1 Respuesta

Respuesta
1

Yo denomine a mi método modo desconectado consiste en conectarme momentáneamente (milisegundos) con la tabla bajar la inf necesaria a un cursor en este cursor hacer las modificaciones necesarias o tala vez crear un nuevo registro y luego volver a abrir la tabla y actualizar los datos y volver a cerrar la tabla. Mira hice un video y también estas las fuentes en mi pagina. www.ingesoftsrl.net/fox

Espero te sirva la información . Finaliza tu pregunta y evalúa mi respuesta

Hola experto. Estuve observando el video y fue muy interesante e instructivo y también estube mirando los códigos fuentes y muchas cosas nuevas que usualmente no las utilizo aprendí. Mi pregunta es la siguiente; en un ambiente multiusuario si utilizo el método de cursores para cargar cierta información de una tabla libre, que pasaría si un usuario esta realizando "modificaciones" a la misma tabla(mismo registro) mientras otro usuario esta realizando "consultas" del mismo registro, no habría cierto desfasa je, ya que el que esta consultado ese registro, esta cargado en un cursor, mientras que el otro usuario ya realizo modificaciones en el registro?? Esa es mi duda. Y muchas gracias por la opción de utilizar cursores que lo implementare en mis sistemas. Gracias

Bueno como lo dices lo lógico en el caso de que consulta agarra o vera lo que esta escrito en la tabla y no vera las actualización echa hasta volver a consultar el mismo registro nuevamente es decir en milisegundos y en el caso del que modifique el mismo registro se grabara en la tabla o quedara grabada en la tabla lo que el ultimo haya grabado sea inf actual o desactualizada es lo mismo que trabajar con flock y relock solo que este caso el rlook o flook le avisa que se esta modificando el registro. Cosa que en la realiza pasa 1x10`6 veces en el caso por ejemplo del nro de factura el ultimo cuando están trabajando en dos o tres terminales a todos le muestro supuestamente el nro 67 que vendría a ser el ultimo pero al momento de guardar vuelvo a calcular el ultimo y lo grabo con ese numero así evito la repetición por tiempo de ejecución en la carga de datos yo he probado trabajar con 10 terminales y hasta el momento nunca se ha generado una duplicidad.

He realizado todos los cambios para utilizar el método de cursores en los sistemas multiusuarios y también los probé en 4 terminales y no encontré ningún problema hsta el momento, funciona perfectamente y es muy poco probable que ocurra el desfasaje de datos. Lo que me falta probar es cuando haya corte de luz o se baje el servidor inesperadamente que pasa ahí con la tabla, si se daña o no, porque ese es el único problema que siempre tengo y justo me pasa con el sistema de sueldos. Desde ya muchísimas gracias por la ayuda y por el método de cursores que es excelente y me sacaste un dolor de cabeza porque ya estaba pensando utilizar una base de datos como mysql u otro. Gracias experto!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas