Buenas tardes a todos.
Creo la tabla siguiente en Firebird
Código SQL
[-]
CREATE TABLE "CTR0001INS"
(
"AUTOI" INTEGER NOT NULL,
"CURSA" INTEGER,
"DORSAL" INTEGER NOT NULL,
"NOM_LLARG" VARCHAR(75) CHARACTER SET ISO8859_1 COLLATE ES_ES,
"NACIO" VARCHAR(3) CHARACTER SET ISO8859_1 COLLATE ES_ES,
"LLICENCIA" VARCHAR(14) CHARACTER SET ISO8859_1 COLLATE ES_ES,
"DNI" VARCHAR(12) CHARACTER SET ISO8859_1 NOT NULL COLLATE ES_ES,
"CODIUCI" VARCHAR(12) CHARACTER SET ISO8859_1 COLLATE ES_ES,
"CLUB" VARCHAR(25) CHARACTER SET ISO8859_1 COLLATE ES_ES,
"ABR_CLUB" VARCHAR(3) CHARACTER SET ISO8859_1 COLLATE ES_ES,
"PUBLICITAT" VARCHAR(25) CHARACTER SET ISO8859_1 COLLATE ES_ES,
"EDAT" INTEGER,
"CATEGORIA" VARCHAR(5) CHARACTER SET ISO8859_1 COLLATE ES_ES,
CONSTRAINT "PK_CTR0001INS" PRIMARY KEY ("AUTOI", "DNI")
);
Lleno la tabla con datos que se guardan sin problema, luego desde Delphi quiero cambiar un valor con el siguiente código:
Código Delphi
[-]
d:=InputBox('Entra el nou dorsal', 'Dorsal', F_ModulDades.InscripcioDORSAL.Text);
F_ModulDades.Inscripcio.Edit;
F_ModulDades.InscripcioDORSAL.Value:=StrToInt(d);
F_ModulDades.Inscripcio.Post;
F_ModulDades.Inscripcio.Close;
F_ModulDades.Inscripcio.Open;
y al hacer el post me lanza un error:
violation of PRIMARY or UNIQUE KEY constraint "PK_CTR0001INS" on table "CTR0001INS"
Pero si hago esta modificación desde IBConsole o IBExpert directamente en la tabla realiza el cambio perfectamente sin problemas, las claves únicas está colocadas en los campos AUTOI y DNI, campos que no toco al pasar el nuevo valor del dorsal.
Alguna ayudita
Gracias
Josep