Ver Mensaje Individual
  #1  
Antiguo 26-06-2006
JulioGO JulioGO is offline
Miembro
 
Registrado: ago 2004
Posts: 94
Reputación: 20
JulioGO Va por buen camino
violation of Foreign Key

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
Responder Con Cita