Fórum Inserção e edição com NestedDataSet #313415
17/02/2006
0
Estou com uma dúvida que para vocês vai ser coisa boba. É o seguinte:
Estou usando um NestedDataSet.
Uso os componentes datasource, dataset provider, client datasets, SQLDatasets e SQLConnection. Suponham que eles estejam conectados corretamente.
Meu problema é na inserção e edição de registros. Quando vou inserir, eu faço:
dModule.cdsPai.Insert;
Na teoria, de acordo com o que li, era para ele deixar o clientdataset FILHO em modo de edição também ! Mas, quando vou editar um campo desse clientdataset FILHO, ele dá um erro dizendo que o dataset não está em modo de inserção ou edição.
A estrutura é a seguinte: tenho uma tabela ´aluno´, que contém um campo cod_pessoa (chave estrangeira para a tabela ´pessoa´). ´aluno´ é o clientdataset PAI e ´pessoa´ o FILHO.
Não sei se deve haver alguma configuração de campo LOOKUP. Seria isso ?
Esse caso com apenas 1 nested dataset foi só p/ ilustrar, pois na minha situação real mesmo eu tenho muito mais.
Resumindo: o que eu quero é poder salvar um novo registro, onde eu tenho um ClientDataSet pai (aluno) e um filho (pessoa). Quero salvar os dois dentro de uma mesma transação, utilizando NestedDataSet.
Alguém poderia me ajudar? Obrigado !!
Valeu, pessoal.
Marcelocda
Curtir tópico
+ 0Posts
17/02/2006
Emerson Nascimento
Gostei + 0
17/02/2006
Marcelocda
Você quer dizer que os nomes dos campos do client data set ´filho´ devem ser iguais aos nomes dos campos da tabela do banco? Já estão iguais.
Desculpe, mas ainda não entendi.
No meu clientdataset pai tenho os campos da tabela pai e o campo que representa todo o cds Filho, que no meu caso se chama ´sqlPessoa´.
No meu SQLQuery Filho, o nome do parâmetro que está na cláusula WHERE é igual ao campo da tabela pai (fk), que nesse caso chama-se ´cod_pessoa´.
Por favor, se você puder me exclarecer isso, ficaria muito grato, pois eu realmente preciso resolver esse problema...
Tudo o que eu quero é que o cds Pai propague as ações pro cds Filho, como ações de Insert, Edit, Post...
Obrigado.
Gostei + 0
19/02/2006
Marcelocda
Gostei + 0
21/02/2006
Emerson Nascimento
com dbExpress eu só consegui fazer essa ligação com os campos tendo o mesmo nome (os campos!). por exemplo:
PRODUTO
ID (PK)
Codigo (UK)
Descricao
ValorUnitario
etc...
PEDIDO
ID (PK)
Numero (UK)
Cliente
Emissao
etc...
PEDIDO_ITEM
ID_PEDIDOITEM (PK)
ID (FK para a tabela pedido)
ID_PRODUTO (FK para a tabela produto)
etc...
note que eu precisei manter os nomes dos campos nas tabelas que usam o recurso de nestedtables iguais (campo PEDIDO.ID = PEDIDO_ITEM.ID).
no caso da tabela produto, que é somente uma referência, o nome do campo de relacionamento pôde ser diferente (PEDIDO_ITEM.ID_PRODUTO = PRODUTO.ID).
Gostei + 0
21/02/2006
Marcelocda
Agora eu entendi :)
Rapaz, tudo o que eu acho na internet sobre Nested DataSets é apenas a configuração dos componentes, a maneira de encaixá-los. Apenas o básico. Não acho nenhum exemplo concreto e mais específico de utilização deles...
Você saberia me informar algum tutorial ou site, ou até mesmo um livro, que tenha coisas mais específicas sobre NestedDataSets ?
Valeu !
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)