[ayu] delphi - excepcion al ejecutar tadoconnection.open

Publicado por marcosp, Junio 09, 2010, 01:11:34

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

marcosp

hola gente.. como estan?
queria consultar a ver si alguien sabe a que se debe este error..
estoy programando en delphi 7 y acces 2003.. la aplicacion funciona bien, pero pasado un tiempo en estar ejecutandose, se genera un error cuando accedo a la base de datos..
especificamente cuando hago el tadoconnection.open.. el error es 'la operacion no esta permitida si el objeto esta cerrado'.. lo raro es que funciona bien, accede a la bd, pero pasado un tiempo tira ese error y no puedo acceder a la bd y tengo que ejecutar la aplicacion de nuevo para que funcione..

espero se entienda..

gracias.. un saludo

Camello_AR

A ver, de Delphi practicamente no caso un fulbo (hice algunos rudimentos hace más de 11 años y mis intentos con BD que es lo que me gusta fueron pobres), pero todo indica que la conexión al archivo de Access (no aclaras si lo haces mediante entrada al archivo directo o ODBC) tiene un tiempo de vida (para eventualmente determinar si la aplicación usa el archivo o el ODBC). Si asi fuera, y no podés cambiar los valores "keep alive", tenés la alternativa, o bien de refrescar las conexiones de la BD (poco recomendable por la sobrecarga) o mediante una función llamada en las consultas a la BD, verificar si la conexión está abierta y en caso contrario reconectar

marcosp

Hola.. Uso un acceso directo al archivo mdb.. connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;USER ID=admin;Password=;
Data Source=bd\bd.mdb;Persist Security Info=False'


En la aplicacion, por cada consulta que se haga a la bd se crea una conexion nueva.. o sea que se abre la conexion, se realiza la consulta y se cierra la conexion..

hice una clase llamada conexion.. y cada vez que se necesita consultar la bd creo un objeto de la clase conexion.. esta clase abre la conexion,hace la consulta y la cierra..

funciona bien, pero despues de realizar algunos accesos me salta ese error..

Tambien me da esa excepcion, cuando intento correr el programa en otra maquina, pero en este caso de entrada no puede acceder a la bd.. no en todas.. en algunas maquinas anda y en otras no (porque? ni idea, a la aplicacion la compilo como una aplicacion standalone, o sea todo lo que hace falta para andar esta en el .exe)..

Esa exepcion tambien sale si se le da una direccion incorrecta de la bd en 'connectionstring='