Fórum Delphi 7 + Mestre Detalhe + ClientDataSet + Abrir em modo de inserção = ERRO de Field Value Required #475855
09/04/2014
0
Pesquisei em vários posts do Fórum até me cansar, se realmente houver algum caso parecido com o meu me desculpem.
Basicamente tenho uma relação mestre detalhe entre duas tabelas segue a descrição dos componentes que utilizo:
1 - MESTRE
- SQLDataSet (paleta DBExpress)
- DataSetProvider (apontando para o SQLMestre)
- ClientDataSet (apontando pro provider)
- DataSource (apontando pro CDS)
2 - DETALHE
- SQLDataSet (apontando para o dataSourceLink)
- DataSource (apontando para o SQLMestre criando o Link)
- ClientDataSet (apontando para o Link gerado)
- DataSource (Apontando para o cds Detalhe)
Passos que executo:
1 - Ativo o CDS Mestre
2 - Abro o SQL Mestre e coloco ele em modo de inserção
3 - Executo o Gerador de Chave para colocar na chave primária do Mestre
4 - Coloco a chave primária no Mestre
5 - Ativo o CDS Detalhe
6 - Coloco o CDS Detalhe em modo de inserção - Neste Momento Aparece uma mensagem de erro dizendo "Field Value Requierd"
Fui em todos os ClientDataSets e coloquei os campos com o Required = False
Definitivamente não faço ideia do que seja.
Alguém pode me ajudar?
Novamente obrigado pela atenção. Fico no aguardo. Uma boa noite para todos.
Paulo Rego
Curtir tópico
+ 0Posts
09/04/2014
Ricardo
Gostei + 0
09/04/2014
Cauê Nishijima
Gostei + 0
10/04/2014
Paulo Rego
Gostei + 0
10/04/2014
Paulo Rego
Infelizmente sim, os campos chave da minha tabela são not null e não podem ser alterados. O problema é que outras relações Do Sistema funcionam com os campos assim.
Fiz a importação, alterei tudo e infelizmente o erro persiste.
De qualquer sorte obrigado pela ajuda. Se souberem de mais alguma coisa, por favor estou tentando resolver isto a uns dois dias.
Uma boa tarde para todos.
Gostei + 0
10/04/2014
Cauê Nishijima
Seguindo seus passos só não entendi o que você faz no passo 3 da execução! Se o mesmo efetua uma consulta pra pegar o ultimo ID tente colocar ele como passo 1 e gravar
em uma variavel, ficando:
Passos que executo:
1 - Executo o Gerador de Chave para colocar na chave primária do Mestre
2 - Ativo o CDS Mestre
3 - Abro o SQL Mestre e coloco ele em modo de inserção
4 - Coloco a chave primária no Mestre
5 - Ativo o CDS Detalhe
6 - Coloco o CDS Detalhe em modo de inserção - Neste Momento Aparece uma mensagem de erro dizendo "Field Value Requierd"
Se puder passar mais informações de como você esta o código desse processo!
Gostei + 0
25/04/2014
Paulo Rego
Consegui resolver o problema.
Basicamente exista um clientdataset detalhe que era utilizado para atualizar o registro, porém ele precisava dos dados do mestre que não existiam.
Tive que utilizar um novo clientdataset fora da relação mestre detalhe e inserir estes dados na tabela detalhe e deixar a tabela mestre para inserir no final
(vocês estão pensando o mesmo que eu, mas peguei o projeto pronto e estou dando manutenção, então não me sinto julgado. kkk)
Novamente obrigado pela atenção todos.
Desculpem a demora em responder. Só conseguir parar e resolver isto ontem.
Um grande abraço, podem colocar resolvido no tópico.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)