Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Error Con Gambas3 Y Sqlite3
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Error Con Gambas3 Y Sqlite3 
 
Buenas tardes a todos,
estoy realizando un pequeño sistema que me permita guardar las compras que realizo en el supermercado, utilizo sqlite3 como gestor de base de datos, la base de datos la diseñe con sqlitebrowser; el programa consta de solo tres tablas: Productos, Compras, DetalleCompras, donde DetalleCompras tiene campos relacionadas con Productos(IdProducto) y Compras(IdCompra).

el problema que surge es el siguiente: al ejecutar la siguiente instruccion con sqlitebrowser "insert into DetalleCompras(IdCompra,IdProducto,Cantidad,Monto) values(10,11,3,3000)".
me arroja el siguiente error "FOREIGN KEY constraint failed: insert into DetalleCompras(IdCompra,IdProducto,Cantidad,Monto) values(10,11,3,3000)"
lo cual es correcto por que los valores "10" y "11" no existen el las tablas Compras y Productos Respectivamente.
En cambio si la misma instrucción la ejecuto desde la aplicación en gambas, se ejecuta correctamente y llega a guardar todos los datos, lo cual no debería ser posible.
He realizado la conexión a través del asistente y mediante código obteniendo el mismo resultado.
Alguien sabe a que se debe este error?
 



 
vr_rv - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
no se la respuesta a tu pregunta. pero yo no usaría el código de sqlitebrowser, salvo para pruebas y tener una idea de las sentencias sql en el propio sql de gambas.

ejecuta las creaciones de tablas y relaciones desde el propio sql de gambas.

no se una sugerencia nomas.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
gambas no activa por defecto el pragma foreign key  de sqlite. Actívalo tú justo después de abrir la base de datos y todo te funcionará ok.
Ya nos cuentas.

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
shordi escribió: [Ver mensaje]
Gambas no activa por defecto el pragma foreign key  de sqlite. Actívalo tú justo después de abrir la base de datos y todo te funcionará ok.
Saludos

y como activo eso?
 



 
vr_rv - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
Shordi:

¿ Una vez creada la tabla se puede hacer eso en sqlite ?. Vale, que la tabla tenga que existir a la que se hace referencia.

¿ Se puede cambiar de la forma ALTER TABLE.. ?

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
vr_rv escribió: [Ver mensaje]

y como activo eso?

Símplemente ejcutando la consulta que lo activa:

miconexionSqlite.Open()
if not miconexion.sqliteOpened then
    ...mensajes de erro y demás
endif
miconexionSqlite.Exec("PRAGMA foreign_keys = ON")


A partir de ahí te mantendrá la integridad referencial.

No he investigado a fondo, pero creo que se puede establecer este parámetro por defecto a SQLITE a nivel de configuración del SO. Sin embargo considero que es mejor hacerlo en gambas porque así te funcionará en cualquier máquina que tenga la instalación por defecto de sqlite sin necesidad de configurar nada.

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
Shell escribió: [Ver mensaje]
Shordi:

¿ Una vez creada la tabla se puede hacer eso en sqlite ?. Vale, que la tabla tenga que existir a la que se hace referencia.

¿ Se puede cambiar de la forma ALTER TABLE.. ?

Saludos


Tienes que distinguir entre la integridad referencial a nivel sintáctico -que quiere decir que las palabras reservadas y construcciones de constraints las reconoce en las sentencias de creación y manipulación, pero no las ejecuta- y la integridad referencial a nivel funcional- que quiere decir que las tiene operativas.

Una base de datos puede tener la primera y no la segunda (por ejemplo, in illo tempore Oracle 6.0, allá por los noventa.
Si quieres un ejemplo más actual, con MySQL con InnoDB, cuando haces una restauración puedes desactivar la segunda temporalmente para crear (sintáctica) y cargar (funcional) las tablas sin que te canten las restricciones.
No lo he probado, pero creo que si creas una tabla en MySQL con declaración de foreign_keys y demás, pero le asignas un motor MyIsam, te permite crearla (sintáctica) pero el motor MyIsam no tiene capacidades de integridad referencial, con lo que nunca funcionaría...
Saludos
 




===================
No podemos regresar
 
última edición por shordi el Jueves, 16 Junio 2016, 09:24; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
Hasta el día 29 no me llega el libro de sql. Parece que lo han pedido a Marte.  
Sera cosa de los "eseculianos".
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error Con Gambas3 Y Sqlite3 
 
Ha funcionado perfecto, muchas gracias Shordi.
 



 
vr_rv - 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 Error Al Conectar A BBDD Sqlite3 [SOLUCION... destroyer Bases de Datos 2 Martes, 24 Noviembre 2009, 13:00 Ver último mensaje
destroyer
No hay nuevos mensajes Error Eb Base De Datos Sqlite3 hostinglobal Bases de Datos 8 Jueves, 20 May 2010, 09:08 Ver último mensaje
Shell
No hay nuevos mensajes Error Básico Al Usar Sqlite3 andraru Bases de Datos 11 Jueves, 25 Agosto 2016, 20:10 Ver último mensaje
andraru
No hay nuevos mensajes Error Sqlite3 v3ctor General 1 Domingo, 17 Noviembre 2019, 17:44 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

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