Hola Ultraton500:
Yo vengo programando desde FoxPro 2.6 para DOS desde 1,991. De hecho me costó mucho y hasta hace tan solo 2 años que me moví a VFP 9. La razón es que mis programas hechos en FoxPro 2.6 quedaron sólidos como roca y los clientes que los tienen en uso quedaron tan complacidos que nunca les interesó migrar a ambiente Windows con VFP. De esa suerte, tengo aplicaciones de FoxPro 2.6 corriendo aún en Windows Vista y 7 sin ningún problema (claro, haciendo algunos ajustes menores al Registry y al CONFIG.NT).
En "tiempos de FoxPro 2.6 para DOS" había un programa residente en ram (TSR) invocado desde tu aplicación en VFP que te ayudaba a que no sucediera la corrupción de tablas DBF o índices CDX. De esa cuenta te puedo decir que solo "2 veces" recuerdo haber tenido corrupción de datos y en ambas ocasiones la culpa la tuvo el hardware, no FoxPro.
Desde un principio, (1,991) puse como condición a los clientes que cada estación de red donde funcionara mi aplicación, hubiera un "buen UPS" (no cualquier UPS marca "patito") que diera buena cantidad de tiempo de soporte.como para que el usuario se saliera de la aplicación "normalmente" y apagara el equipo en lo que el fluído eléctrico era restituído normalmente.
Por otro lado, siempre que encontraba archivos .TMP yo le mandaba un "severo" memo al cliente indicándole que pasó una de 3 cosas:
1- Hubo un apagón y no dio tiempo a salirse de la aplicación normalmente (culpa del hardware por dar tiempo insuficiente)
2- El usuario NO SALIO NORMALMENTE de la aplicación (culpa del usuario)
3- Se le dio un "RESET" al computador (también culpa del usuario).
En el memo le indicaba claramente que por culpa de estas circunstancias NO HABÍA GARANTÍA de buena operación del sistema, por lo que cualquier llamado a "arreglar" tablas dañadas se facturaría y cobraría por separado, porque adicionalmente SIEMPRE, SIEMPRE desde el primer día de arranque de la aplicación, se le proveía al cliente un sub-sistema de Back-Up que él debía correr "religiosamente".
En fin, la idea siempre fue RESPONSABILIZAR al cliente de su data. Tu puedes ser un fabricante de vehículos, los mejores vehículos, pero esta en manos de tu cliente respetar las Leyes de Transito para evitar sufrir accidentes y si aún así, "sucediera" un accidente, para eso "el cliente" debe pagar un "seguro" (el Back-Up fiel y constante) por si algo saliera mal.
Si el cliente NO ESTABA DISPUESTO a aceptar estas cláusulas pues simplemente NO HABIA TRATO porque nunca me expondría a situaciones que estuvieran fuera de mi control pero aún así, bajo mi responsabilidad.
Te repito, con la ayuda de este programita residente en RAM, durante 16 años de montar programas en FoxPro 2.6 para DOS (unas 20 aplicaciones "grandes") solamente recuerdo haber tenido currupción de datos "2 veces" y en ambas mi insturcción para el cliente fue: "bueno, recupere su Back-Up de ayer vuelva a ingresar las transacciones perdidas. PUNTO. Ya estaba advertido y ya estaba hablado.
Ahora bien, en los 2 años que llevo de programar en VFP he hecho:
- Una aplicación para un Salon de Belleza Caja, Cuenta Corriente y Agenda de Clientes.
- Una aplicación de Facturación - Inventario - Cuentas por Pagar - Ventas
- Una aplicación de Planillas - Bancos y Contabilidad Fiscal
- Una aplicación TOTAL para una Cooperativa de Ahorro y Credito.
Y hasta ahora, luego de 2 años de trabajar con VFP NUNCA he tenido una corrupción de tablas. Ahora bien, como "técnica" de programación, yo trato de mantener las tablas "abiertas y expuestas" el menor tiempo de posible. Casi todo lo resuelvo con variables de memoria que pueden perderse en cualquier momento sin dejar ninguna consecuencia sobre las tablas. Así que me parece mucho que también el asunto depende de tus "técnicas de programación" y de cuanto tiempo mantienes "abiertas y expuestas" las tablas y sus índices.
De todos modos, el día llegará seguramente en que tenga una corrupción de datos y le recordaré a mi cliente: "Recuerde que cuando hicimos el convenio de trabajo quedó claro que USTED cuidaría su responsabilidad de tener un Back-Up actualizado y confiable." Si el cliente se resiste a utilizar el BAck-Up porque luego de restaurarlo tiene que volver a teclear las transacciones perdidas le recuerdo: Si usted va en un barco de pasajeros, cuando el barco se hunde, usted no anda con "tapujos y preferencias especiales" se sube a un bote de remos y punto. Pues este caso ES LO MISMO."