Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Sqlite Database Is Locked
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...
 



 
vicr - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
No podemos regresar
 
última edición por shordi el Martes, 02 Agosto 2016, 17:28; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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á...       
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...
 



 
vicr - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sqlite Database Is Locked 
 
Ah, bueno, entonces nada...    
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
calcena - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Sqlite: Database Is Locked ¿alquien Sabe ... jsbsan Bases de Datos 10 Miercoles, 18 Enero 2012, 20:35 Ver último mensaje
codificador
No hay nuevos mensajes Sqlite Database Browser Y Sqliteman Shell Bases de Datos 2 Martes, 09 Abril 2013, 08:35 Ver último mensaje
Shell
No hay nuevos mensajes Database Raimundo0R Bases de Datos 5 Viernes, 05 Febrero 2016, 18:21 Ver último mensaje
shordi
No hay nuevos mensajes Unable To Locate Database.... gambafeliz General 10 Sabado, 24 Agosto 2019, 22:21 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron