Salvar tabela n:n uando Delphi
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.
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
Curtidas 0
Melhor post
Jerson Boer
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.
GOSTEI 1
Mais Respostas
Frank Lima
29/05/2018
Boa Tarde Amigo, Pode me falar o banco de dados e os componentes que esta usando para a conexao do banco de dados:??
GOSTEI 0
Frank Lima
29/05/2018
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.
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.
GOSTEI 0
Luiz Silva
29/05/2018
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
GOSTEI 0
Danilo
29/05/2018
Obrigado Luis,consegui aqui,criei um sql ,peguei ultimo codigo cadastrado e salvei na terceira tabela.
GOSTEI 0
Danilo
29/05/2018
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.
<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.
GOSTEI 0
Danilo
29/05/2018
Boa tarde Frank.
Como crio um append como vc disse?
Como crio um append como vc disse?
GOSTEI 0
Jerson Boer
29/05/2018
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.
GOSTEI 0
Danilo
29/05/2018
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)
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)
GOSTEI 0