Estimados amigos,
Necesito que me orienten, en base a vuestras experiencias, en el tema que a continuación les describo y que me está causando innumerables dolores de cabeza y para el que no termino de encontrar una solución.
El tema es el siguiente, tengo un sistema de facturación funcionando en mas de 250 lugares diferentes desde hace muchos años, a medida que las cosas se fueron complejizando con los avances de la tecnología ( facturación electrónica, validaciones on line de diversos procesos, impresores fiscales de modelos diversos, sistemas operativos diversos, PC de modelos y antiguedad diversas etc.etc. ) e comenzado a experimentar errores en la grabación de los datos en las bases (.DBF) y por lo tanto inconsistencias en los procesos contables y de control de stock de productos.
Por lo que he podido investigar, la mayor parte de las veces esto ocurre por imposibilidad del sistema de acceder a las bases de datos ( que son muchas y sólo se abren y cierran cuando es necesario agregar datos a alguna de ellas ) al momento de efectuar el volcado, esto ocasionaba un error y el sistema se colgaba con el engorro que esto significa para el usuario al tener que reiniciar la terminal con problemas.
Para evitar esto, lo primero que se me ocurrió fue abrir las bases de datos usando TRY CATCH END con lo cual los errores de apertura se terminaron ( sólo manda un aviso de que el proceso no se pudo realizar ) pero como el sistema sigue funcionando ( ya no se cuelga ), no se hace el volcado en las bases y se produce el faltante de datos. Aclaro que todas las bases del sistema se usan en modo compartido.
Ahora estaba pensando en ir guardando todo lo que no se pueda grabar, por cualquier motivo, en una base de datos tipo repositorio y con un programa externo que se ejecute cada determinado periodo de tiempo, ir volcando todo lo guardado en las bases de datos. Intenté usar algun proceso como el ROLLBACK del SQL pero en harbour no existe nada similar.
Les estaría muy agradecido a quienes habiendo pasado por el mismo problema me puedan aportar alguna orientación al respecto.
Muchas gracias y un afectuoso abrazo a todos
Raul Terraz - Argentina