Discução sobre Nested Table com DbExpress.
Olá pessoal,
Estou com uma dúvida sobre utilização de nested tables. Ela possui a vantagem de utilizar apenas um Applyupddades, ou cancel.
Porém estou tendo alguns problemas, tipo por exemplo. Quando eu estou inserindo um registro que vou na tabela filha e adicino um registro a tabela pai sai do estado de inserção.
Caso eu faça mestre detalhe normal isso não ocorre.
Gostaria de compartilhar a experiencia de vocês sobre Nested Table (tabela aninhada) falando sobre o que vc´s utilizam e por que.
Abraços
Yalle Cunha.
Estou com uma dúvida sobre utilização de nested tables. Ela possui a vantagem de utilizar apenas um Applyupddades, ou cancel.
Porém estou tendo alguns problemas, tipo por exemplo. Quando eu estou inserindo um registro que vou na tabela filha e adicino um registro a tabela pai sai do estado de inserção.
Caso eu faça mestre detalhe normal isso não ocorre.
Gostaria de compartilhar a experiencia de vocês sobre Nested Table (tabela aninhada) falando sobre o que vc´s utilizam e por que.
Abraços
Yalle Cunha.
Yallebr
Curtidas 0
Respostas
Row
15/02/2005
também gostaria de saber algo mais sobre Nested Table.
No meu caso possuo uma tabela mestre, uma tabela detalhe e uma tabela digamos de sub-detalhes
Gostaria de saber de como fazer esse relacionamento entre as 3 tabelas.
No meu caso possuo uma tabela mestre, uma tabela detalhe e uma tabela digamos de sub-detalhes
Gostaria de saber de como fazer esse relacionamento entre as 3 tabelas.
GOSTEI 0
Rômulo Barros
15/02/2005
também gostaria de saber algo mais sobre Nested Table.
No meu caso possuo uma tabela mestre, uma tabela detalhe e uma tabela digamos de sub-detalhes
Gostaria de saber de como fazer esse relacionamento entre as 3 tabelas.
Pelo que sei, DBX suporta apenas relacionamentos do tipo PAIS para FILHOS, e não PAIS para NETOS. Ou seja, DBX é capaz apenas de exibir os detalhes de um determinado registro, mas não é capaz de exibir os detalhes de um registro que já seja detalhe de outro registro. :P
Vejam, [url=http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=58&mode=thread&order=0&thold=0]NESTE LINK[/url], como fazer um passo-à-passo de Master/Detail com Dbexpress e Firebird.
GOSTEI 0
Row
15/02/2005
foi esse tutorial que eu segui.
A principio consegui fazer o que eu queria
Que era relacionar uma tabela de orçamentos (ORCAMENTOS) tabela mestre e uma tabela de itens do orçamento (ITENS_ORC) tabela detalhe.
Mas eu tenho mais uma tabela de sub-itens (SUBITENS_ORC) que seria uma tabela de detalhe da tabela de itens (ITENS_ORC)
Aih que o bicho tá pegando[/list]
A principio consegui fazer o que eu queria
Que era relacionar uma tabela de orçamentos (ORCAMENTOS) tabela mestre e uma tabela de itens do orçamento (ITENS_ORC) tabela detalhe.
Mas eu tenho mais uma tabela de sub-itens (SUBITENS_ORC) que seria uma tabela de detalhe da tabela de itens (ITENS_ORC)
Aih que o bicho tá pegando[/list]
GOSTEI 0
Emerson Nascimento
15/02/2005
qdo vc trabalha com nested tables vc pode ter várias ´ramificações´, assim como no mestre . eu trabalho na área de transportes e tenho a seguinte ligação com nested tables:
viagem, manifestos, conhecimentos e notas fiscais.
onde uma viagem pode ter vários manifestos (ligação mestre-detalhe), o manifesto pode ter vários conhecimentos e cada conhecimento pode ter várias notas ficais. nesse caso teríamos ramificações até os ´bisnetos´. e isso funciona sem nenhum problema.
seguindo o artigo já citado, basta acrescentar os datasources e ir fazendo as ligações da mesma forma que foi feito para o primeiro nível.
viagem, manifestos, conhecimentos e notas fiscais.
onde uma viagem pode ter vários manifestos (ligação mestre-detalhe), o manifesto pode ter vários conhecimentos e cada conhecimento pode ter várias notas ficais. nesse caso teríamos ramificações até os ´bisnetos´. e isso funciona sem nenhum problema.
viagem │ &9500;&9472;&9472;&9472; manifesto1 &9474; &9474; &9474; &9500;&9472;&9472;&9472;&9472; conhecimento1 &9474; &9474; &9500; Nota fiscal1 &9474; &9474; &9500; Nota fiscal2 &9474; &9474; &9492; Nota fiscal3 &9474; &9474; &9474; &9500;&9472;&9472;&9472;&9472; conhecimento2 │ &9474; &9500; Nota fiscal1 &9474; &9474; &9500; Nota fiscal2 &9474; &9474; &9492; Nota fiscal3 &9474; &9474; &9474; &9492;&9472;&9472;&9472;&9472; conhecimento3 &9474; &9500; Nota fiscal1 &9474; &9500; Nota fiscal2 &9474; &9492; Nota fiscal3 &9474; &9500;&9472;&9472;&9472; manifesto2 &9474; &9474; &9474; &9500;&9472;&9472;&9472;&9472; conhecimento1 &9474; &9474; &9500; Nota fiscal1 &9474; &9474; &9492; Nota fiscal2 &9474; &9474; &9474; &9492;&9472;&9472;&9472;&9472; conhecimento2 &9474; &9492; Nota fiscal1 &9474; &9492;&9472;&9472;&9472; manifesto3 │ &9500;&9472;&9472;&9472;&9472; conhecimento1 &9474; &9500; Nota fiscal1 &9474; &9492; Nota fiscal2 &9474; &9492;&9472;&9472;&9472;&9472; conhecimento2 &9500; Nota fiscal1 &9500; Nota fiscal2 &9500; Nota fiscal3 &9492; Nota fiscal4
seguindo o artigo já citado, basta acrescentar os datasources e ir fazendo as ligações da mesma forma que foi feito para o primeiro nível.
GOSTEI 0
Rômulo Barros
15/02/2005
Tá aí !!!! Mais uma que não sabia e aprendi !!! :wink: :wink:
GOSTEI 0
Michaell
15/02/2005
qdo vc trabalha com nested tables vc pode ter várias ´ramificações´, assim como no mestre . eu trabalho na área de transportes e tenho a seguinte ligação com nested tables:
viagem, manifestos, conhecimentos e notas fiscais.
onde uma viagem pode ter vários manifestos (ligação mestre-detalhe), o manifesto pode ter vários conhecimentos e cada conhecimento pode ter várias notas ficais. nesse caso teríamos ramificações até os ´bisnetos´. e isso funciona sem nenhum problema.
seguindo o artigo já citado, basta acrescentar os datasources e ir fazendo as ligações da mesma forma que foi feito para o primeiro nível.
viagem │ &9500;&9472;&9472;&9472; manifesto1 &9474; &9474; &9474; &9500;&9472;&9472;&9472;&9472; conhecimento1 &9474; &9474; &9500; Nota fiscal1 &9474; &9474; &9500; Nota fiscal2 &9474; &9474; &9492; Nota fiscal3 &9474; &9474; │ &9500;&9472;&9472;&9472;&9472; conhecimento2 &9474; &9474; &9500; Nota fiscal1 &9474; &9474; &9500; Nota fiscal2 &9474; &9474; &9492; Nota fiscal3 &9474; &9474; &9474; &9492;&9472;&9472;&9472;&9472; conhecimento3 &9474; &9500; Nota fiscal1 &9474; &9500; Nota fiscal2 &9474; &9492; Nota fiscal3 &9474; &9500;&9472;&9472;&9472; manifesto2 &9474; &9474; &9474; &9500;&9472;&9472;&9472;&9472; conhecimento1 &9474; &9474; &9500; Nota fiscal1 &9474; &9474; &9492; Nota fiscal2 &9474; &9474; &9474; &9492;&9472;&9472;&9472;&9472; conhecimento2 &9474; &9492; Nota fiscal1 │ &9492;&9472;&9472;&9472; manifesto3 &9474; &9500;&9472;&9472;&9472;&9472; conhecimento1 &9474; &9500; Nota fiscal1 &9474; &9492; Nota fiscal2 &9474; &9492;&9472;&9472;&9472;&9472; conhecimento2 &9500; Nota fiscal1 &9500; Nota fiscal2 &9500; Nota fiscal3 &9492; Nota fiscal4
Colega,
Você tem algum exemplo de como realizar as operações de edição (Insert, Update, Delete) nestes tipos de relacionamentos?
[]´s
GOSTEI 0
Row
15/02/2005
E quando uma tabela detalhe tem duas tabelas mestre?
No caso
tabelas mestre: ´ORÇAMENTOS´ e ´PRODUTOS´
tabela detalhe: ´ITENS_ORC´
Existe uma relação ´Muitos x Muitos´ entre ´ORCAMENTOS´ E e ´PRODUTOS´ o que gera a tabela ´ITENS_ORC´
Não estou conseguindo resolver isso.
No caso
tabelas mestre: ´ORÇAMENTOS´ e ´PRODUTOS´
tabela detalhe: ´ITENS_ORC´
Existe uma relação ´Muitos x Muitos´ entre ´ORCAMENTOS´ E e ´PRODUTOS´ o que gera a tabela ´ITENS_ORC´
Não estou conseguindo resolver isso.
GOSTEI 0
Emerson Nascimento
15/02/2005
não entendi bem seu conceito, mas a ligação correta seria:
ORÇAMENTOS |-------> ITENS_ORC |------| PRODUTOS
onde um orçamento tem vários itens e o item tem apenas 1 produto.
ORÇAMENTOS |-------> ITENS_ORC |------| PRODUTOS
onde um orçamento tem vários itens e o item tem apenas 1 produto.
GOSTEI 0
Row
15/02/2005
A estrutura das tabelas é seguinte
ORCAMENTOS
- COD_ORC (PK) //Codigo do orçamento
- ANO_ORC (PK) //Ano do orçamento
- COD_CLI (FK) //Código do cliente
- DATA
- VENDEDOR
PRODUTOS
- COD_PROD (PK) //Codigo do produto
- COD_GRUPO (FK) //Grupo do produto
- NOME_PROD //Nome do produto
- DESC_PROD //Descrição do produto
Como a relação de ORCAMENTOS com produtos é de muitos para muitos (1 Orçamento pode ter varios produtos, e 1 produto pode fazer parte de muitos orçamentos)
Criei uma nova tabela
ITENS_ORC
- COD_ORC (PK) (FK) //Relaciona com orçamento
- ANO_ORC (PK) (FK) // Relaciona com orçamento
- ID_PROD (PK) (FK) //Relaciona com produto
- Demais campos..
Emerson, minha idéia está errada?
ORCAMENTOS
- COD_ORC (PK) //Codigo do orçamento
- ANO_ORC (PK) //Ano do orçamento
- COD_CLI (FK) //Código do cliente
- DATA
- VENDEDOR
PRODUTOS
- COD_PROD (PK) //Codigo do produto
- COD_GRUPO (FK) //Grupo do produto
- NOME_PROD //Nome do produto
- DESC_PROD //Descrição do produto
Como a relação de ORCAMENTOS com produtos é de muitos para muitos (1 Orçamento pode ter varios produtos, e 1 produto pode fazer parte de muitos orçamentos)
Criei uma nova tabela
ITENS_ORC
- COD_ORC (PK) (FK) //Relaciona com orçamento
- ANO_ORC (PK) (FK) // Relaciona com orçamento
- ID_PROD (PK) (FK) //Relaciona com produto
- Demais campos..
Emerson, minha idéia está errada?
GOSTEI 0
Emerson Nascimento
15/02/2005
não. sua idéia está correta.
mas seu relacionamento é do tipo metre-detalhe.
é somente
Orçamento -> Itens Orçamento
onde está sua dúvida?
mas seu relacionamento é do tipo metre-detalhe.
é somente
Orçamento -> Itens Orçamento
onde está sua dúvida?
GOSTEI 0
Row
15/02/2005
Bom
existe uma outra tabela chamada ´COMPONENTES´
COMPONENTES //componentes de um produto
- COD_COMP (PK) //codigo do componente
- NOME_COMP
- DESC_COMP
esta tabela é relacionada com a tabela ´PRODUTOS´
Um produto pode ter varios componentes e um componente faz parte de varios produtos
PRODUTO_COMP //tabela de relacionamento
- COD_PROD (PK) (FK)
- COD_COMP (PK) (FK)
O que eu não consigo fazer é o seguinte:
Quando vou fazer um orçamento, abro um form, aonde coloco os dados do orçamento, adiciono os produtos (ITENS_ORC) no orçamento.
Eu queria clicar no DBGRID aonde estão os itens do orçamento (os produtos daquele orçamento) e que em um grid ao lado mostrasse os componentes desse item(PRODUTO) selecionado.
existe uma outra tabela chamada ´COMPONENTES´
COMPONENTES //componentes de um produto
- COD_COMP (PK) //codigo do componente
- NOME_COMP
- DESC_COMP
esta tabela é relacionada com a tabela ´PRODUTOS´
Um produto pode ter varios componentes e um componente faz parte de varios produtos
PRODUTO_COMP //tabela de relacionamento
- COD_PROD (PK) (FK)
- COD_COMP (PK) (FK)
O que eu não consigo fazer é o seguinte:
Quando vou fazer um orçamento, abro um form, aonde coloco os dados do orçamento, adiciono os produtos (ITENS_ORC) no orçamento.
Eu queria clicar no DBGRID aonde estão os itens do orçamento (os produtos daquele orçamento) e que em um grid ao lado mostrasse os componentes desse item(PRODUTO) selecionado.
GOSTEI 0