[RESUELTO] Problema con aplicacion de escritorio
Started by
jacapu
, Jan 09 2010 05:40 PM
10 replies to this topic
#1
Posted 09 January 2010 - 05:40 PM
Hola a todos, tengo 2 problemas con una aplicacion de Bases de datos Paradox desde la que abro otra aplicacion tambien de bases de datos Paradox:
1- Cuando se produce un Key Violation intento reparar la tabla usando el metodo Empty de TTable, pero no funciona y tengo que salir e ir al DataBaseDesktop para vaciarla desde alli con el metodo Empty. Mi pregunta es: Son diferentes los metodos de cada programa?. Que solucion hay?.
2- Al compilar la aplicacion desde Delphi7 aparece un mensaje de error diciendo que no hay memoria suficiente para ejecutar la aplicacion, indicando a veces el nombre de una tabla de las usadas en el programa. Si voy al DataBasDesktop a ver la tabla en cuestion está vacía. Sin embargo, al lanzar el programa desde el escritorio corre perfectamente hasta que abro la segunda aplicacion. Aparece un mensaje diciendo que hay error en el DBengine.
1- Cuando se produce un Key Violation intento reparar la tabla usando el metodo Empty de TTable, pero no funciona y tengo que salir e ir al DataBaseDesktop para vaciarla desde alli con el metodo Empty. Mi pregunta es: Son diferentes los metodos de cada programa?. Que solucion hay?.
2- Al compilar la aplicacion desde Delphi7 aparece un mensaje de error diciendo que no hay memoria suficiente para ejecutar la aplicacion, indicando a veces el nombre de una tabla de las usadas en el programa. Si voy al DataBasDesktop a ver la tabla en cuestion está vacía. Sin embargo, al lanzar el programa desde el escritorio corre perfectamente hasta que abro la segunda aplicacion. Aparece un mensaje diciendo que hay error en el DBengine.
#2
Posted 10 January 2010 - 03:44 PM
Saludos, para comenzar me gustaria saber si estas realizando la conexion con un tsesion apuntando a un mismo netdir.
Al respecto de lo del keyviolation estas capturandolo con una exception? Estas trabajando con cache update?
Si puedes colocar trozos de codigo de donde te da problemas podremos ayudarte mejor
Al respecto de lo del keyviolation estas capturandolo con una exception? Estas trabajando con cache update?
Si puedes colocar trozos de codigo de donde te da problemas podremos ayudarte mejor
#3
Posted 11 January 2010 - 10:01 AM
En la aplicacion inicial uso un componente ActiveX (Vecad) de graficos vectoriales.
En las aplicaciones que abro desde la aplicacion inicial tambien uso este control ActiveX.
Cuando el programa inicial era de menos tamaño no habia ningun problema. Al ir creciendo el programa inicial usando mas tablas e incorporando mas opciones es cuando se bloquea. El codigo de error qie aparece es $2501, creo que esta relacionado con la memoria del motor del BDE. Lo que no se es como configurar la memoria del BDE para ampliarla. Seguramente el problema es debido a que necesito usar muchas tablas al mismo tiempo, pues el ejecutable pesa mas de 6 megas. No aprece ningun problema relacionado con el control ActiveX, todos los mensajes de error se refieren al BDE. Los programas secundarios, si los abro independientemente no dan problemas, El problema surge cuando los abro desde la aplicacion principal. He hecho una prueba con un programa paralelo vacio, (sin dialogos), solo con las opciones de menu para abrir los programas secundarios y los abre bien.
Gracias por responder.
Saludos
En las aplicaciones que abro desde la aplicacion inicial tambien uso este control ActiveX.
Cuando el programa inicial era de menos tamaño no habia ningun problema. Al ir creciendo el programa inicial usando mas tablas e incorporando mas opciones es cuando se bloquea. El codigo de error qie aparece es $2501, creo que esta relacionado con la memoria del motor del BDE. Lo que no se es como configurar la memoria del BDE para ampliarla. Seguramente el problema es debido a que necesito usar muchas tablas al mismo tiempo, pues el ejecutable pesa mas de 6 megas. No aprece ningun problema relacionado con el control ActiveX, todos los mensajes de error se refieren al BDE. Los programas secundarios, si los abro independientemente no dan problemas, El problema surge cuando los abro desde la aplicacion principal. He hecho una prueba con un programa paralelo vacio, (sin dialogos), solo con las opciones de menu para abrir los programas secundarios y los abre bien.
Gracias por responder.
Saludos
#4
Posted 11 January 2010 - 10:17 AM
nos estamos enredando, vamos pregunta por pregunta, tu dices que tienes un problema con el keyviolation, prueba ejecutar un table1.cancel cuando captures la excepción.
Con respecto al error de memoria has probado filtrar un poco los registros en cada apertura para reducir la cantidad de memoria necesitada?
Con respecto al error de memoria has probado filtrar un poco los registros en cada apertura para reducir la cantidad de memoria necesitada?
#5
Posted 11 January 2010 - 10:28 AM
Además de que debes de revisar otro puntos como lo indica eduarcol, puedes incrementar la cantidad de memoria compartida en el Administrador del BDE.
Salud Os
Salud Os
#6
Posted 11 January 2010 - 03:55 PM
Cómo aumento la memoria , pues necesito tener unas cuantas tablas abiertas para gestionar la informacion,
Saludos
Saludos
#7
Posted 11 January 2010 - 04:15 PM
pues digitandolo directamente como indica la imagen de egostar, prueba colocando un valor 4096.
Saludos.
Saludos.
#8
Posted 13 January 2010 - 05:06 AM
Muchisimas gracias, problema resuelto.
Se puede ampliar aum mas la memoria del BDE?. Lo digo por si me hiciera falta.
Gracias.
Se puede ampliar aum mas la memoria del BDE?. Lo digo por si me hiciera falta.
Gracias.
#9
Posted 13 January 2010 - 06:24 AM
Saludos.
Me alegra ver que hayas podido resolver, solo que me quedo sin respuesta para la mayoría de las situaciones que presentaste, entiendo que falto un poco más de explicación para saber bien que quieres realizar.
A veces esos Key Violation viene de que Paradox para ciertos métodos necesita que se abra(n) la(s) tabla(s) en modo exclusivo para su ejecución.
Tengo mucho tiempo que no uso el BDE, pero supongo que se puede ampliar más la memoria en la misma proporción que ya hiciste.
P.D. Como esta resuelto lo pasare a resuelto.
Me alegra ver que hayas podido resolver, solo que me quedo sin respuesta para la mayoría de las situaciones que presentaste, entiendo que falto un poco más de explicación para saber bien que quieres realizar.
A veces esos Key Violation viene de que Paradox para ciertos métodos necesita que se abra(n) la(s) tabla(s) en modo exclusivo para su ejecución.
Tengo mucho tiempo que no uso el BDE, pero supongo que se puede ampliar más la memoria en la misma proporción que ya hiciste.
P.D. Como esta resuelto lo pasare a resuelto.
#10
Posted 29 April 2010 - 03:26 PM
Y con el tema del metodo EmptyTable, puedes ayudarme?
Saludos.
Saludos.
#11
Posted 30 April 2010 - 08:13 AM
Y con el tema del metodo EmptyTable, puedes ayudarme?
Saludos.
Saludos.
Jacapu disculpa, pero crea otro hilo con la referencia nueva sobre lo que andas buscando, recuerda que ya marcaste este hilo como resuelto. Entiendo que es otro asunto que no esta relacionado con el original.
Gracias nuevamente y disculpa.