Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Error: Cannot Create Record: Abort Due To Constraint Violation ¿ Que Signi...
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Error: Cannot Create Record: Abort Due To Constraint Violation ¿ Que Significa? [solucionado] 
 
Sabeis que significa este error:

 error_due

Me ha dado en una aplicación que estoy haciendo con sqlite3


Nota:
He buscado en el foro y he encontrado esto:
http://foro.gambas-es.org/viewtopic.php?f=3&t=609

Mañana lo leo con atención.... no lo pongo [solucionado] todavia...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Lunes, 02 Marzo 2015, 11:07; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error: Cannot Create Record: Abort Due To Constraint Violation ¿ Que Significa? 
 
Significa que estás infringiendo la integridad referencial y no se pueden grabar los datos. Por ejemplo intentas meter un nulo en un campo que no pude ser nulo, intentas poner un valor en un campo que es clave foránea que no existe en la tabla referida, etc.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error: Cannot Create Record: Abort Due To Constraint Violation ¿ Que Significa? 
 
Shordi:

Gracias por explicarme el error. Te cuento...

Es algo super extraño lo que me ha pasado, y lo he podido solucionar, sin tocar ninguna linea de código de  mi programa:

Os cuento:
1) Normalmente, trabajo con Sqlite3, con el complemento Sqlite Manager, ( https://addons.mozilla.org/es/firefox/addon/sqlite-manager/ ) que se instala en Firefox.
Es muy bueno, y admite crear/editar/insertar datos, etc... con tablas y además también te permite crear, modificar  y mostrar  las Vistas.

2) Una base de datos que cree con Sqlite Manager, la abrí desde el editor de bases de datos de Gambas3, añadí un campo nuevo.
Pero la definición de la tabla módificada, es muy distinta a como la crea Sqlite Manager:

Gambas3:
CREATE TABLE 'descompuestolabores' ( 'iddescompuesto' INT4 NOT NULL , 'idpresupuesto' INT4, 'idlabor' INT4, 'precio' FLOAT8, 'idtipo' INT4, 'comentario' TEXT, 'medicion' FLOAT8, 'total' FLOAT8, 'precioenlazado' BOOL, 'idorden' INT4, PRIMARY KEY ('iddescompuesto') )


Sqlite Manager: (una tabla similar)
CREATE TABLE "descompuestomateriales" ("iddescompuestomaterial" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE , "idpresupuesto" INTEGER, "idmaterial" INTEGER, "medicion" FLOAT, "precio" FLOAT, "total" FLOAT,"comentario" TEXT, "idtipo" INTEGER)


Como veis, son muy parecidas, usa INT4 en vez INTEGER, etc... la única diferencia que veo más importante es la PRIMARY KEY, la define de una manera diferente.
Gambas3:  'iddescompuesto' INT4 NOT NULL  y al final pone PRIMARY KEY ('iddescompuesto')
Sqlite Manager: "iddescompuestomaterial" INTEGER PRIMARY KEY AUTOINCREMENT  NOT NULL  UNIQUE

Aqui creo que viene el fallo, en Gambas3, no he sabido definir el AUTOINCREMENT,  con lo cual no me deja añadir registros....


3) Solución:
Siguiendo el "patrón" de la definicion que hace en Sqlite Manager, borre y cree de nuevo la tabla "descompuestolaborales"

Y solucionado..
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error: Cannot Create Record: Abort Due To Constraint Violation ¿ Que Significa? [solucionado] 
 
Es lo que tiene SQLite. Todos los campos son texto en realidad. Los puedes definir como quieras, que luego puedes grabar lo que quieras. Todo es texto. Eso es muy bueno por la flexibilidad inmensa que te da, es muy malo por la ambigüedad que genera. ¿Quién se encarga de que lo que se define como número sea númerico y las fechas, fechas, etc.? gambas con su "capa de gestión de datos". Por tanto lo que para gambas es bueno, con sqlite, puede no serlo para otros gestores de datos y viceversa, en tanto que SQLite se lo traga todo.

Saludos.
 



 
shordi - 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 Bug O Error Con Key.Text Y Gb.qt / Gb.qt.e... BrunoIV General 8 Viernes, 19 Agosto 2011, 20:32 Ver último mensaje
Invitado
No hay nuevos mensajes Key Already Used Error(solucionado) Dani26 Bases de Datos 2 Viernes, 21 Octobre 2011, 02:56 Ver último mensaje
Dani26
No hay nuevos mensajes [solucionado] Configurar Un Record De Una ... vuott General 3 Sabado, 01 Noviembre 2014, 01:40 Ver último mensaje
vuott
No hay nuevos mensajes Error De Aplicacion[solucionado] xmuno General 10 Martes, 21 Junio 2016, 20:17 Ver último mensaje
jguardon
 

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