Key violation - DBGrid
O meu problema é que se eu colocar o mesmo código mais de uma vez no mesmo pedido ele me dá a mensagem de violação de chave.
Estou usando Delphi 7 com Paradox.
Tenho duas tabelas Pedido e PedidoItens. Nas duas existe o campo NumeroPedido, este campo está Key nas duas tabelas.
Coloquei a tabela PedidoItens em um componente DBGrid e criei o link PedidoNumeroPedido e PedidoItensNumeroPedido.
Agradeço a ajuda.
Estou usando Delphi 7 com Paradox.
Tenho duas tabelas Pedido e PedidoItens. Nas duas existe o campo NumeroPedido, este campo está Key nas duas tabelas.
Coloquei a tabela PedidoItens em um componente DBGrid e criei o link PedidoNumeroPedido e PedidoItensNumeroPedido.
Agradeço a ajuda.
Fabiano Sanches
Curtidas 0
Respostas
Wilson Junior
04/10/2011
Coloque a estrutura das suas tabelas aqui, para poder lhe ajudar da melhor maneira, e em que momento ocorre o erro.
GOSTEI 0
Fabiano Sanches
04/10/2011
TABELA PEDIDO
FIELD NAME TYPE SIZE KEY
PEDIDO + *
DATA D
CODIGO_CLIENTE I
NOME_CLIENTE A 40
OBS A 40
VENDEDOR A 15
TABELA PEDIDOLINHA
FIELD NAME TYPE SIZE KEY
PEDIDO I *
MODELO I
TAMANHO N
QT N
OBS A 40
FIELD NAME TYPE SIZE KEY
PEDIDO + *
DATA D
CODIGO_CLIENTE I
NOME_CLIENTE A 40
OBS A 40
VENDEDOR A 15
TABELA PEDIDOLINHA
FIELD NAME TYPE SIZE KEY
PEDIDO I *
MODELO I
TAMANHO N
QT N
OBS A 40
GOSTEI 0
Fabiano Sanches
04/10/2011
Ah.... o erro acontece quando vou incluir um segundo item. Ou seja quando, quando vai gravar o segundo item na tabela pedidoslinha.
GOSTEI 0
Dempsey Silva
04/10/2011
Angelo..
Você tem que declarara uma PK Composta para a table PEDIDOLINHA, ou seja com dois campos. Ex(NUMEROPEDIDO, PRODUTO).
Você tem que declarara uma PK Composta para a table PEDIDOLINHA, ou seja com dois campos. Ex(NUMEROPEDIDO, PRODUTO).
GOSTEI 0
Fabiano Sanches
04/10/2011
Estou muito agradecido Dempsey Alex de Sousa Silva pela solução e ao Wilson Lehapan Junior, vulgo Paulista...!!! pela atenção.
A criação de uma chave composta resolveu o problema !!!
Valew mesmo.
Era programador Progress e estou tentando iniciar no Delphi.... estou apanhando D+.
Gostaria de mais uma dica. Quando estou inserindo os itens no DBGrid (PedidoLinha) seria possível ele repetir um campo na próxima linha da grid ??
Exemplo: Na primeira linha coloquei o Modelo 123 Tamanho 10 Quantidade 1. Quando o cursor cair pra segunda linha ele repetir o campo Modelo da primeira linha.
A criação de uma chave composta resolveu o problema !!!
Valew mesmo.
Era programador Progress e estou tentando iniciar no Delphi.... estou apanhando D+.
Gostaria de mais uma dica. Quando estou inserindo os itens no DBGrid (PedidoLinha) seria possível ele repetir um campo na próxima linha da grid ??
Exemplo: Na primeira linha coloquei o Modelo 123 Tamanho 10 Quantidade 1. Quando o cursor cair pra segunda linha ele repetir o campo Modelo da primeira linha.
GOSTEI 0