Fórum Delphi 7 + Mestre Detalhe + ClientDataSet + Abrir em modo de inserção = ERRO de Field Value Required #475855

09/04/2014

0

Olá pessoal, e obrigado desde já pela atenção.

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

Paulo Rego

Responder

Posts

09/04/2014

Ricardo

Provavelmente algum campo na sua tabela esta marcado como not null.
Responder

Gostei + 0

09/04/2014

Cauê Nishijima

Tenta importar os campos para os SQLDataSet também e mudar neles a propriedade Required para False.
Responder

Gostei + 0

10/04/2014

Paulo Rego

Pessoal obrigado pelas dicas, vou testa-las, assim que der e dou um feedback.
Responder

Gostei + 0

10/04/2014

Paulo Rego

Olá pessoal, vou tentar responder aqui:

Provavelmente algum campo na sua tabela esta marcado como not null.


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.


Tenta importar os campos para os SQLDataSet também e mudar neles a propriedade Required para False.


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.


Responder

Gostei + 0

10/04/2014

Cauê Nishijima

Fiz uma simulação aqui seguindo os passos que você informou e não consegui reproduzir o erro.
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!
Responder

Gostei + 0

25/04/2014

Paulo Rego

Olá pessoal, e obrigado pela atenção.
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.
Responder

Gostei + 0

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

Aceitar