violation of FOREIGN KEY !

06/07/2008

6

Pessoal estou com esse erro quando vou inserir outros produtos no dbgrid itens da compra [b:c04ac61261]´violation of FOREIGN KEY constraint FK_TB_ITEMCOMPRA_1 on table ´TB_ITEMCOMPRA´
[/b:c04ac61261]
Delphi 7 - Firebird 1.5 - IBX

Tabelas

Compra

CREATE TABLE TB_COMPRA (
IDCOMPRA INTEGER NOT NULL, PK
NOTAFISCAL INTEGER,
DATA_EMISSAO DATE,
DATA_ENTRADA DATE,
OBSERVACAO VARCHAR(60),
TOTAL_NOTA D_MOEDA /* D_MOEDA = DECIMAL(10,2) */,
IDFORNECEDOR INTEGER FK
);

Item Compra

CREATE TABLE TB_ITEMCOMPRA (
ID INTEGER NOT NULL, PK
IDCOMPRA INTEGER NOT NULL, FK
IDPRODUTO INTEGER NOT NULL, FK
QUANTIDADE INTEGER,
PERC_DESC DECIMAL(3,2),
VLRUNITARIO D_MOEDA /* D_MOEDA = DECIMAL(10,2) */,
PERC_IPI DECIMAL(3,2)
);

CREATE TABLE TB_PRODUTO (
IDPRODUTO INTEGER NOT NULL, PK
IDCATEGORIA INTEGER, PK
DESCRICAO D_DESCRICAO NOT NULL /* D_DESCRICAO = VARCHAR(50) */,
TP_PRODUTO CHAR(1) NOT NULL,
CODBARRA VARCHAR(13),
DATA_CAD DATE NOT NULL,
UNIDADE CHAR(5),
PRECOCUSTO D_MOEDA /* D_MOEDA = DECIMAL(10,2) */,
PERCMARGEM DECIMAL(4,2),
PRECOVENDA D_MOEDA /* D_MOEDA = DECIMAL(10,2) */,
ESTMINIMO INTEGER,
ESTATUAL INTEGER,
INDICE DECIMAL(3,2),
CURVATURA DECIMAL(3,2),
DIAMETRO INTEGER,
TP_LENTE VARCHAR(20),
TP_MATERIAL VARCHAR(20),
SUPERFICIE VARCHAR(20),
COR VARCHAR(30),
EMBALAGEM VARCHAR(30),
VALIDADE VARCHAR(30)
);

Select da tabela ItemCompra - select * from TB_ITEMCOMPRA where IDCOMPRA=:ID



Lembrando que o formulario de Entrada de Produtos, com Mestre/Detalhe , poderiam me ajudar a resolver esses problemas !


Responder

Posts

07/07/2008

Romulocpd

Verifique quais campos participal da Foreign Key referenciada. Provavelmente o campo IDCOMPRA ou IDPRODUTO não estão sendo enviados e por isso está dando erro de foreign key. Um ZERO deve estar sendo enviado. Verifique no evento BeforePost se eles estão ´setados´.


Responder