La Web del Programador: Comunidad de Programadores
 
    Pregunta:  897 - PROBLEMA AL ACTULIZAR LAS TABLAS
Autor:  Daniel Durand
He desarrollado un sistema de gestión en Visual FoxPro 5.0(casi terminado). El único problema lo tengo en la pantalla de facturación, la cual es la mas complicada en cuanto a que posee mayor cantidad de tablas abiertas y relacionadas.
El problema ocurre aleatoriamente 1 de cada 15 o 20 veces y es que al momento de actualizar las tablas el sistema se cae mientras está actualizando.
Conviene saber que utilizo los comandos BEGIN TRANSACTION, END TRANSACTION, ROOLBACK, ETC...
Utilizando almacenamiento de tablas en buffer.
El sistema utiliza impresoras compartidas y envía los comprobantes a una u otra dependiendo del caso. Se está trabajando con Windows 95.
El error que me tira es a nivel de Windows (EL PROGRAMA A EFECTUADO UNA OPERACION NO VALIDA Y SE CERRARA). Este error no me dice nada, ya que es de windows.
Si alguien tiene una idea o sugerencia con respecto al método de grabación a algún truco, le agradecería muchísimo me lo comuniquen.
Yo había pensado en Instalar el windows NT WorkStation 4.0 por que es mas estable en redes.
Esta pantalla se utiliza en 3 o 4 terminales simultaneamente.

  Respuesta:  TITO ARAYA
Amigo, yo no se si a estas alturas habras solucionado tu problema, pero la solucion que yo te doy, y te ahorraras varios problemas es cambiandote a VFP version 6. Yo trabaje con la version 5 pero me frustro. En esa ocacion incluso fui a la Microsoft de aca en mi pais, y ellos mismo admitieron que la version 5 tenia problemas, desconozco si posteriormente se le hicieron parches a esta version pero, en la version 6 todo anda a las mil marvillas. Ahora no se como sera la version 7 no la he instalado todavia.
Escribeme por algun comentario a mi e-mail

  Respuesta:  FRANCISCO J GALVEZ
mira yo no tengo mucha experiancia ultimamente el programacion con foxpro bajo el ambiente windows, pero de acuerdo a lo que dices me parece mas bien un problema de manipulacion de memoria, tal vez no estes manejando bien la memoria o tal vez la computadora que utilizas tiene poca memoria, pero independientemente de eso puedes tratar (no se si pueda en foxpro) una especia de programacion como los .OVL que a como se van ejecutando y terminando de ejecutar cada unas de las tareas se desocupa ese bloque de memoria quedando disponible para la siguiente tarea.

bueno es una idea espero y te sea util, dicen que dos o tres o mas cabezas piensan mas que una.


  Respuesta:  Humberto García Casas
Respecto a tu problema este debe ser por la cantidad de memoria que este usando la Base de datos, me ocurrio algo parecido, lo que puede detectar es que cada vez que creas o eliminas un objeto de la BD esta actualiza su indice, indice en el cual registra todo lo que haces en tu programa, como lo solucione , existe un comando PACK DATABASE consulta en la ayuda, pero ten cuidado que puede alterar tu BD, te recomiendo hacer copia de esta y todas las tablas y luego correr este comando. Recuerda que una BD guarda objetos y estos pueden ocupar mucho espacio en memoria(observa el tamaño del indice de la BD antes y despues de correr este comando.

Otra solucion es crear desencadenantes usando el comando CREATE TRIGGER. El desencadenante se llama cuando se intenta la actualización de un registro (eliminar, insertar o actualizar) por instancias así el performs de la apliacion sería contralado por la PC y no por el SERVER.


  Respuesta:  Jhonn
Tines un problema no con el foxpro, sino con el windows
Cuando tu usas una sentencia rollback se crea un sisrtema de transacciones virtules en memoria que es el doble o un espejo de el espacio de emoria ocupado ya por las bases de datos que tienes abirtas... las cuentios es que al parecer no tienes suficiente memoria disponible.
Lo que hace Foxpro, es que busca un bloque de memoria al descubierto para direccionar los archivos que el va a almacenar. Y accesde a bloques de memorias en ereas protegidas para uso exclusivo del windows.
Cuendo el monitor de recursos de windows, detecta que bloques de memorias protegdas, estan siendo intevenidos, Crea una interrupcion en la aplicasion y manda un fallo general de proteccion generado por la aplicasion foxpro.exe.

Revisa la version de windows que tengas

las mas recomendada en win95 osr2 b
y adicional a esto baja un parche (si tu windows esta en ingles) en microsoft y aplicale.

este problema no es nuevo.... suele suseder mucho con aplicasiones Visual Basic cuando estas son nuy complejas.

emviame tu direccion y otros comentarios y te amplio el tema.


  Respuesta:  Rene Gutierrez
hola, mira yo me imagino que tienes un problema de manejo de memoria y de archivos porque no pruebas aumentando los buffers y files delarchivo config.sys

  Respuesta:  Alain Rivas J.
A mi me ha ocurrido en varias ocaciones, te las comento para que puedas verificarlas en detalle:
1.- Mi tarjeta madre estaba mal configurada y ocurria cuando ejecutaba solo el FOX PRO.
2. Uno de mis SIMM´s de memoria estaba mal aunque no aparentaba y ocurria tantas veces como tantas veces instalaba WIN95
TE SUGIERO:
1. A veces se instalan programas que reemplazan la librerias de WINDOWS, intenta formateando tu disco e instalando solo WIN y FOX (mismo idioma).
2. Configura tu tarjeta madre para que trabaje a menos velocidad.
3. Testea tu red verificando paquetes enviados, paquetes recibidos, errores en la transmision, te aconsejo UTP.
Lo mas que te aconsejo es que te cambies de lenguaje de programacion, VISUAL FOX es un lenguaje bastante vulnerable a fallos, robo de informacion y los codigos que genera no son muy compactos.
Ojala te sirva de algo...

http://virtual.es.fortunecity.com/digital/3