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)
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..