Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema de acceso al BDE (https://www.clubdelphi.com/foros/showthread.php?t=65755)

jacapu 11-01-2010 17:38:10

Problema de acceso al BDE
 
Hola, tengo 2 problemas con un programa que estoy haciendo:
1- El programa en cuestión usa tablas Paradox que se cargan a partir de un fichero de texto. Cuando se produce un Keyviolation se bloquea. He preparado un procedimiento para vaciar las tablas usando el metodo Empty de TTable desde el programa, pero no funciona y tengo que salir e ir al DataBaseDesktop y usar el metodo Empty desde alli. Ademas abro otros programas de base de datos Paradox desde este programa y cuando intento abrirlos me aparece un mensaje diciendo que no hay memoria sufucuente para ejecutarlos y al salir de este mensaje se abre otro diciendo que hay problemas con el DBEngine e indica el nombre del alias de la base de datos, algunas veces indica error 2501, otras el nombre de alguna tabla de las que usa el programa. Hay solución?, pues mi ordenador es un Pentium IV con 2 GB de memoria y hasa hace poco todo funcionaba perfectamente. Son diferentes los metodos Empty de TTable y DataBaseDesktop?
2- En el cuadro de dialogo Project Options de Delphi7, pestaña Linker, hay unos cuadros de edición de memoria indicando minstacksiza, maxstacksize, imagebase. Puede gestionarse el problema desde ahi?. Para que sirven?.
Los problemas han aparecido a raiz de la ampliacion de opciones en el programa principal, (al añadir mas cuadros de dialogo y tablas).
La mayoria de tablas las gestiono desde un modulo de datos, otras desde los dialogos, (son imagenes de las mismas tablas con opciones de filtrado distintas).
Gracias de antemano.
Saludos

mlara 12-01-2010 15:25:53

Un poco extraño tener que borrar siempre todos los registros de una tabla. De todas formas sugiero lo siguiente:

Usar transacciones, así:

Código:

DatabaseComponent.StartTransaction;

...

Table.Empty;

try
  DatabaseComponent.Commit;
except
  DatabaseComponent.Rollback;
end;

Cuando se eliminan todos los registros e una tabla, en realidad estos quedan en el archivo. Es por esta razón por la que el archivo de base de datos (.DB) cada vez va a ser más grande. Entonces si estamos trabajando con una tabla temporal, creo que lo mejor sería no eliminar todos sus registros, sino crearla cuando se requiera y eliminarla totalmente cuando ya se haya usado. De esta forma el archivo no crecerá indefinidamente.

Por lo demás, con base en la experiencia al ejecutar la aplicación varias veces, creo que deberían aislarse los problemas. Quiero decir que es muy importante saber cuándo se generar un error y cuándo otro. Me refiero a los mensajes de error que muestra la BDE.

gonza_619 20-09-2010 19:48:50

Bueno A Mi Me Ocurre Que Cuando Ingreso Registros Desde La Ejecucion , Luego Los Guardo Los Datos Tablex.post;
Pero Al Cerrar El Delphi Cuando Voy A Ver Si Estan Esos Registros En Paradox Y Ano Estan , Pero Se Supone Q Se Guardaron Luego Del Post.
Porq Habria De Suceder Eso? Habria Que Porner Algun Codigo Luego Del Post? Grax


La franja horaria es GMT +2. Ahora son las 19:33:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi