Fórum Salvar tabela n:n uando Delphi #594522

29/05/2018

0

Bom dia amigos.

Criei uma tabela de Produtos e uma de Fornecedor sendo elas N:N, com isso gerou uma terceira tabela contendo foreign key,
prod_codigo e forn_codigo,gostaria de saber como faço para gravar os dados nessa tabela quando salvo o produto com seu respectivo fornecedor?

Sei que deve ser simples para uns,mas como estou começando e não achei nada sobre esse assunto,conto com ajuda de voces.

Desde já agradeço.
Danilo

Danilo

Responder

Post mais votado

04/06/2018

Olá Danilo.. E se 2 ou mais pessoas cadastrarem produto ao mesmo tempo? Acredito que desta forma o último código cadastrado não vai ser necessariamente o código que você esperava. Não sei qual a estrutura do que você está desenvolvendo, mas se o cadastro de produto se assemelha entre si, independente do fornecedor, o mais coerente seria você ter 1 produto para N fornecedores. Desta forma, o seu cadastro de produto receberá uma chave ao salvar e o seu fornecedor outra pois estará previamente cadastrado, aí sim você teria uma tabela relacionando produto X, fornecedores A, B, C, D.. Mas procure sempre pegar a chave pelo registro que está em tela, não pela busca depois de algo que foi salvo, tipo o último código.

Jerson Boer

Jerson Boer
Responder

Gostei + 1

Mais Posts

03/06/2018

Frank Lima

Boa Tarde Amigo, Pode me falar o banco de dados e os componentes que esta usando para a conexao do banco de dados:??
Responder

Gostei + 0

03/06/2018

Frank Lima

Mas é simples, quando voce cadastrar um novo produto, voce ja vai ter que ter um fornecedor cadastrado.

Ex: Fornecedor X
Produto Y

Quando fazer o Commit do Produto.
Voce faz um append da tabela Produto_Fornecedor, e o prod_codigo recebe o codigo do produto que voce esta cadastrando e o forn_codigo, recebe o codigo que voce colocar na hora do cadastro.

mas te deixo uma dica, mais facil voce fazer N:1 e cada produto so ter um fornecedor, e quando vc fizer o pedido em outro fornecedor vc altera o fornecedor, assim o produto recebe forn_codigo do fornecedor.
eu trabalho em uma empresa e o sistema e assim N:1 para produto fornecedor.
Responder

Gostei + 0

03/06/2018

Luiz Silva

Na hora de gravar os dados vc deve gravar a chave primaria de produtos e a chave primaria de fornecedor. Em um dbgrid vc vai fazer inner join juntando as tabelas e mostrando os dados. Para relacionar por exemplo o fornecedor com os dados vc pode usar o mestre detalhe do delphi que consiste em um dbgrid com os fornecedores e um outro dbgrid embaixo com os produtos. Quando vc clica em um fornecedor ele mostra abaixo os produtos que estao relacionados com esse fornecedor pelo id
Responder

Gostei + 0

04/06/2018

Danilo

Obrigado Luis,consegui aqui,criei um sql ,peguei ultimo codigo cadastrado e salvei na terceira tabela.
Responder

Gostei + 0

04/06/2018

Danilo

Boa tarde JERSON.<br />
<br />
Nossa não tinha pensado nessa ipotese de mas de uma pessoa gravar ao mesmo tempo,estou começando agora em delphi e estou com bastante dificuldade nisso,criei o modelo sendo produto x fornecedor sendo na tela de cadastro de produtos ,podendo gravar um fornecedor.<br />
mas ai criei uma tabela prodXforn tendo 2 chaves primary key e foreign Key,quando salvo o produto ela pega o codido do produto e do fornecedor sendo assim n x n.mas agora que voce falou isso não sei o que fazer,pois se uma outra pessoa estiver cadastrando um produto tambem e salvar antes ai eu pego o ultimo registro errado na tabela prodXforn.
Responder

Gostei + 0

04/06/2018

Danilo

Boa tarde Frank.

Como crio um append como vc disse?
Responder

Gostei + 0

05/06/2018

Jerson Boer

Olá Danilo, me confirme o seguinte, pelo que entendi, você tem 1 produto que tem vários fornecedores, certo? Ou será sempre 1 produto com 1 fornecedor? Pergunto isso porque me deu dúvida com a resposta que deu acima sobre a minha postagem e dependendo da sua resposta direciono você a uma melhor estruturação das tabelas.
Responder

Gostei + 0

05/06/2018

Danilo

Boa tarde Jerson.

Então vamos la:
Criei uma modelagem n x n,sendo produto e fornecedor,criando então uma terceira tabela com pk e fk de produto e fornecedor certo.
ai tenho um formulário de fornecedor e produto,sendo que no formulário de produto tem o combobox para preencher o fornecedor.
ai caso eu compre o mesmo produto de outro fornecedor eu possa gravar novamente.
mas ai estava pensando em colocar um grid no formulário de produto onde eu possa grava os fornecedor do produto em vez de ficar criando o mesmo produto varias vez, só por causa do fornecedor.
Me da uma ajuda ai.
se quiser me add no zap.(32999616264)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar