Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Maia

Relacionamento entre tabelas

Recommended Posts

E o Sequinte estou fazendo um programa em delphi pára uma banca de revista estou usando como bano de dados o Access tenho duas tabelas que precisam estar relacionadas a de venda e dos itens da venda e tem como campo de ligação o N_Venda, ja fiz o seu relacionamento via access como tambem via Dm (MasterSoucer=Ds_Vendas, MasterFilde=N_Venda), ate ai tudo bem so que quando eu rodo o programa e tento fazer uma venda quando e pra abrir um novo iten da venda o delphi retorna uma messagem tipo assim que e necssario que a tabela Itens da Venda tem que ter um registro relacionado com a tabela venda, por que ele retorna esta erro se as tabelas estão relacionadas.

 

se alguem poder me ajudar eu agradeço.

 

obs. com tabelas Paradox eu consigo fazer na boa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Paulo Maia.

 

Este erro está ocorrendo, visto que no momento em que voce digita os dados da tabela Venda (Tabela Primária), e depois tenta digitar os dados da tabela Ítens de venda (Tabela Estrangeira), a tabela Venda ainda não recebeu os seus dados digitados, portanto ao se tentar gravar a tabela Itens de venda primeiro, ele vai reportar o erro de relacionamento de não existir relacionamento na tabela primaria.

 

Para resolver isso, e já que voce está você está usando access, dentro do access crie uma consulta juntando as duas tabelas, e no momento da inserção, voce deverá inserir nesta consulta, ou seja, apontar apenas um único Dataset do Delphi para esta consulta, pois a consulta trará todos os campos de ambas as tabelas e os dados serão inseridos na tabela Venda primeiro e depois na tabela Ítem de venda.

 

O SQl dessa consulta ficará mais ou menos assim:

 

   select Venda.*, Item_Venda.* from Venda inner join Item_Venda on Venda.N_Venda = Item_Venda.N_Venda;

Para fazer inserção este o SQL que deverá ser usado.

 

O Senhor é meu Pastor, e nada me faltará

 

Jorge da Silva Abreu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Paulo Maia.

 

Este erro está ocorrendo, visto que no momento em que voce digita os dados da tabela Venda (Tabela Primária), e depois tenta digitar os dados da tabela Ítens de venda (Tabela Estrangeira), a tabela Venda ainda não recebeu os seus dados digitados, portanto ao se tentar gravar a tabela Itens de venda primeiro, ele vai reportar o erro de relacionamento de não existir relacionamento na tabela primaria.

 

Para resolver isso, e já que voce está você está usando access, dentro do access crie uma consulta juntando as duas tabelas, e no momento da inserção, voce deverá inserir nesta consulta, ou seja, apontar apenas um único Dataset do Delphi para esta consulta, pois a consulta trará todos os campos de ambas as tabelas e os dados serão inseridos na tabela Venda primeiro e depois na tabela Ítem de venda.

 

O SQl dessa consulta ficará mais ou menos assim:

 

   select Venda.*, Item_Venda.* from Venda inner join Item_Venda on Venda.N_Venda = Item_Venda.N_Venda;

Para fazer inserção este o SQL que deverá ser usado.

 

O Senhor é meu Pastor, e nada me faltará

 

Jorge da Silva Abreu

 

Obrigado pela luz, vamos ver se eu consigo agora

 

Paulo Maia

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.