Hola forofos:
Tengo las siguientes estructuras:
Código:
/*Tabla maestra*/
CREATE TABLE COMPRA (
NUMRUC VARCHAR(11) NOT NULL,
TIPDOC VARCHAR(2) NOT NULL,
NUMDOC VARCHAR(15) NOT NULL,
ESTADO VARCHAR(1),
TOTAL DECIMAL(18,2),
ITEMS INTEGER
);
ALTER TABLE COMPRA ADD PRIMARY KEY (NUMRUC, TIPDOC, NUMDOC);
/*Tabla detalles*/
CREATE TABLE DCOMPRA (
NUMRUC VARCHAR(11) NOT NULL,
TIPDOC VARCHAR(2) NOT NULL,
NUMDOC VARCHAR(15) NOT NULL,
ITEM INTEGER NOT NULL,
CODART VARCHAR(7) NOT NULL,
CANTID DECIMAL(18,2),
PRECIO DECIMAL(18,2)
);
ALTER TABLE DCOMPRA ADD PRIMARY KEY (NUMRUC, TIPDOC, NUMDOC, ITEM);
ALTER TABLE DCOMPRA ADD FOREIGN KEY (NUMRUC, TIPDOC, NUMDOC) REFERENCES COMPRA (NUMRUC, TIPDOC, NUMDOC) ON DELETE CASCADE ON UPDATE NO ACTION;
hasta ahi todo normal. La cuestion viene al ejecutar el modulo maestro-detalles. El modulo maestro-detalle consta de los siguientes objetos:
Un IBDatabase, dos IBTransaction y dos IBDataSet(uno para Maestro, otro para Detalle, y los respectivos controles para el ingreso de datos: DBTextbox, DBGrid, etc.
Cuando inserto un nuevo registro en Detalles me sale el siguiente mensaje: "violation of Primary Key". A que se debe?, ¿Como lo puedo solucionar? y en q estoy fallando. Si alguien me puede ayudar se lo agradezco de antemano.
PD: Uso Firebird 2.0, IBX 7.1 sobre Delphi 7 en Win XP
Saludos