Sqlite Database Is Locked


Goto page 1, 2  Next

Subject: Sqlite Database Is Locked
Buenas noches a todos,
estoy desarrollando una aplicación con sqlite, y tengo un problema con el bloqueo de las base de datos, la verdad con sqlite aunque he trabajado nunca había desarrollado nada específico. Ahora estoy en fase de desarrollo con otro IDE y otra arquitectura, que migraré a gambas en cuanto finalice. Quisiera saber si los que desarrolláis en gambas tenéis problemas con los bloqueos de la DB.
En principio tengo una clase Conexion.cs que realiza una conn.open(); y siempre cierro la conexión con un conn.close();
Alguna sugerencia.
Saludos.

Profile PM  
Subject: Re: Sqlite Database Is Locked
Un programa que hice meses atrás para probar el uso de SQLite con gambas me daba un error cuando me cambiaba de formulario, por lo que puse unas lineas para consultar si estaba abierta o no la conexión. El error o problema exacto no me acuerdo como se presentaba, o sea no recuerdo si me decía que hubo error en la terminal o simplemente se colgaba... pero luego de lo que te expongo no tuve problemas. La forma de hacerlo la encontré en mensajes antiguos de este foro.

Te dejo el código que emplee.


' gambas module file

Public cnx As Connection

Public Sub conectar(sNomConexion As String)
'string que ahora será "ConecNotas"
cnx = Connections[sNomConexion] 'Esta manera de conectarme a la bd es por que usé el asistente de conexión de Gambas
If cnx = Null Then
Message.Error("Error al intentar conexion")
Endif

If Not cnx.opened Then
cnx.Open
Endif

End

Public Sub cerrar()

cnx.Close

End


Saludos...

Profile PM  
Subject: Re: Sqlite Database Is Locked
Buenos días y muchas gracias vicr por tu contestación, entonces lo que realizas es revisar el estado de la conexión si ya está o no abierta.
OK!!!
la verdad es curioso que para otros motores de DB no sea necesario, al menos para mí nunca lo ha sido, revisar el estado de una base de datos, sencillamenta la abres la cierras y entiendo que internamente el objeto se gestiona correctamente, también es verdad que SQLite se basa en un archivo único de DB *.sqlite y que es más complejo de manejar.
Aunque no sea para gambas de momento, voy a implementar la solución que me comentas a ver que tal.
os iré comentado que tal.
Gracias.

Profile PM  
Subject: Re: Sqlite Database Is Locked
El hecho de que SQLite se base en un sólo archivo, hace que haya que respetar los tiempos que el SO tarda en operar con ella.
No he mirado en profundidad tu código, pero si después de abrir la BD haces una pausa de, digamos medio segundo (wait 0.5) o menos, según la máquina, el disco, etc., no deberías tener ningún problema.

Aún siendo totalmente correcto el código de más arriba comprobando el estado de opened, en realidad funciona porque la operación demora un poquito, símplemente, y le da tiempo al S.O. de "estabilizar" los accesos al archivo.

Saludos.

Last edited by shordi on Tuesday, 02 August 2016, 17:28; edited 1 time in total
Profile PM  
Subject: Re: Sqlite Database Is Locked
Buenas compañeros, tema solucionado, en gambas veo que hay que jugar con el Wait, tiempo de espera en milis, pero en el sistema que desarrollo el problema venía por el reader, sqlitecommand que no estaban cerrados, eso genera un acceso temporal que en caso de no estar desechado (dispose();) deja trabado el acceso.
No se si esto sería aplicable a gambas, no se si esta info os puede servir de ayuda.
Conclusión, para sqlite hay que cerrar cualquier componente que interactue con la DB.
Saludos.

Profile PM  
Subject: Re: Sqlite Database Is Locked
Buenas tardes, pues , la verdad pensaba que había podido solucionar los problemas con SQLite y nada, sigo teniendo problema con el acceso al mismo.
Estoy pensando en migrar la base de datos a Firebird, porque tampoco conozco más bases de datos portables para el sistema con el que desarrollo, no se si cuando todo esto lo pase a gambas podré utilizar SQLite sin problemas pero por ahora son todo problemas.
Derby no creo que me sea compatible, así que he penado Firebird a ver que opinais de este sistema SGBD que apriori dicen que es bueno y potente.
El problema lo vengo teniendo en la parte de la gestión de las Copias de Seguridad, tengo problemas de acceso al sistema .sqlite.
Saludos.

Profile PM  
Subject: Re: Sqlite Database Is Locked
Yo no he tenido nunca esos problemas que mencionas ni nadie del foro se ha quejado de ello. Algo debes estar haciendo mal.

Sube tu proyecto, o al menos un proyecto pequeñito con las partes que te dan problema de manera que se pueda reproducir y te podremos ayudar.

SQLite funciona. Cambiar de BD no te solucionará el asunto. Como mucho lo rodeará...

Profile PM  
Subject: Re: Sqlite Database Is Locked
Shordi, creo que Calcena tiene problemas en otro leguaje no en gambas... que en gambas iba a codificar después de armar el proyecto en ese otro lenguaje que menciona en el primer post.

Saludos...

Profile PM  
Subject: Re: Sqlite Database Is Locked
Ah, bueno, entonces nada...

Profile PM  
Subject: Re: Sqlite Database Is Locked
Buenas, os comento que por otro foro coinciden con vosotros en una cosa, la sqliteconnection tiene por default 15 segundos.
Ésto según se comenta es configurable cuando se construye un método del estilo

public static SqliteConnection Conectamos()
.....
SqliteConnection.Timeout=0;
return myConexion;

Lo comento porque a falta de implementarlo, quizá tiene que ver mucho con el tema del WAIT que comentabais, pero si ya implementais este timeout desde el inicio, igual no teneis que poner los WAIT de por medio.

Ya me comentareis que tal, y ya lo sufriré en mis carnes cuando me toque pasar a GAMBAS.
Saludos.

Profile PM  
Goto page 1, 2  Next

Page 1 of 2


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.0802s (PHP: -28% SQL: 128%)
SQL queries: 24 - Debug Off - GZIP Enabled