ClientDataSet :: Field value required
Ola Pessoal, estou tendo o seguinte problema:
ao incluir dados em um clientdataset com apenas dois campos, ao dar o post ele me retorna esta mensagem. [color=red:30851bdacf]Field value required[/color:30851bdacf]
tenho os seguintes campos:
codigo (integer)
nome (string)
ai faço:
:arrow: os dois campos eestão como required = false; :oops:
alguem saberia informa se é bug ou DO mesmo?? :cry:
ao incluir dados em um clientdataset com apenas dois campos, ao dar o post ele me retorna esta mensagem. [color=red:30851bdacf]Field value required[/color:30851bdacf]
tenho os seguintes campos:
codigo (integer)
nome (string)
ai faço:
CDSDetalhe.Append; CDSDetalhe.FieldByName(´CODIGO´).AsInteger := 1; CDSDetalhe.FieldByName(´NOME´).AsString := ´otto´; CDSDetalhe.Post; // aqui o erro
:arrow: os dois campos eestão como required = false; :oops:
alguem saberia informa se é bug ou DO mesmo?? :cry:
Otto
Curtidas 0
Respostas
Nerdex
16/04/2005
[list:3a6a2d192c]Certamente não é bug oTTo...: eu testei aqui e funcionou blz...
Dicas:
- Verifique se os nomes dos campos correspondem ao código digitado;
- Verifique se vc criou um arquivo XML ou CDS (binário) antes de... rodar;
- Verifique se vc, após criar os campos, clicou c/ o botão direito no CD escolhendo a opção: ´Create DataSet´;
- Por último... (eu não precisei fazer). Adicione MidasLib na sua uses;
... e por último leia isto: [img:3a6a2d192c]https://www.devmedia.com.br/portal/images/shop/livro_guinther.gif[/img:3a6a2d192c] com certeza irá te ajudar...: :roll: [/list:u:3a6a2d192c]
Dicas:
- Verifique se os nomes dos campos correspondem ao código digitado;
- Verifique se vc criou um arquivo XML ou CDS (binário) antes de... rodar;
- Verifique se vc, após criar os campos, clicou c/ o botão direito no CD escolhendo a opção: ´Create DataSet´;
- Por último... (eu não precisei fazer). Adicione MidasLib na sua uses;
... e por último leia isto: [img:3a6a2d192c]https://www.devmedia.com.br/portal/images/shop/livro_guinther.gif[/img:3a6a2d192c] com certeza irá te ajudar...: :roll: [/list:u:3a6a2d192c]
GOSTEI 0
Otto
16/04/2005
[list:f871d10c2b]Certamente não é bug oTTo...: eu testei aqui e funcionou blz...
suspeitei desde o principio...
Dicas:
- Verifique se os nomes dos campos correspondem ao código digitado;
- Verifique se vc criou um arquivo XML ou CDS (binário) antes de... rodar;
- Verifique se vc, após criar os campos, clicou c/ o botão direito no CD escolhendo a opção: ´Create DataSet´;
- Por último... (eu não precisei fazer). Adicione MidasLib na sua uses;
tudo feito, menos adicionar midaslib pq antes funcionava perfeitamente.. usava o BDE, agora to com Zeos.. :?
... e por último leia isto: [img:f871d10c2b]https://www.devmedia.com.br/portal/images/shop/livro_guinther.gif[/img:f871d10c2b] com certeza irá te ajudar...: :roll: [/list:u:f871d10c2b]
:x piada sem jeito :x
GOSTEI 0
Nerdex
16/04/2005
pq antes funcionava perfeitamente.. usava o BDE, agora to com Zeos..
[list:f5adda01a9] Nem Zeus... muito menos o BDE interferem neste caso...: :wink: [/list:u:f5adda01a9]
piada sem jeito
[list:f5adda01a9] Desculpa a piada...: :oops: ... mas não é piada: o livro é legal mesmo...: :!: [/list:u:f5adda01a9]
GOSTEI 0
Bruno Belchior
16/04/2005
vc está usando Mestre-Detalhe?
GOSTEI 0
Otto
16/04/2005
eu incluo uns itens no clientdata set.. após o usuário clicar em salvar, eu inicio a transação e vou varrendo o client data set, inserindo um por um.. depois comito.
depurando o sistema, os dois campos estao preenchidos, no post ocorre isso :x
depurando o sistema, os dois campos estao preenchidos, no post ocorre isso :x
GOSTEI 0
Vinicius2k
16/04/2005
oTTo,
Vc está usando o CDS só como tabela de memória e fazendo a inserção no BD ´no braço´ (via SQL)?
Se não, ou seja, se vc estiver usando:
[b:5236dbf41d]ZConnection -> ZQuery -> DataSetProvider -> ClientDataSet[/b:5236dbf41d]
O problema *pode* estar aí... a Zeos não tem suporte à Midas (Provider), veja os KnowBugs.html :
Ainda assim, se vc estiver usando este esquema de ligação, vc precisaria setar o Required = False nos TFields da ZQuery também...
T+
Vc está usando o CDS só como tabela de memória e fazendo a inserção no BD ´no braço´ (via SQL)?
Se não, ou seja, se vc estiver usando:
[b:5236dbf41d]ZConnection -> ZQuery -> DataSetProvider -> ClientDataSet[/b:5236dbf41d]
O problema *pode* estar aí... a Zeos não tem suporte à Midas (Provider), veja os KnowBugs.html :
6. Midas IProviderSupport interface is not completely supported. It may cause problems with TDatasetProvider and TClientDataset. Full support for IProviderSupport interface will be added to version 6.2.
Ainda assim, se vc estiver usando este esquema de ligação, vc precisaria setar o Required = False nos TFields da ZQuery também...
T+
GOSTEI 0
Bruno Belchior
16/04/2005
tive esse mesmo problema, tbm depurava e os campos estavão preenchidos, mas estava usando mestre-detalhe a nível do SQLDataSet que utilizava para extração de dados, resolvi isso utilizando o mestre-detalhe a nível de CDS...
GOSTEI 0
Otto
16/04/2005
eu vou jogando no cds e no final incluo um pro um via sql..
mas, resolvi aqui.. aquele velho esquema.. deleta o cds e bota denovo.. :evil:
mas, resolvi aqui.. aquele velho esquema.. deleta o cds e bota denovo.. :evil:
GOSTEI 0
Michaell
16/04/2005
tive esse mesmo problema, tbm depurava e os campos estavão preenchidos, mas estava usando mestre-detalhe a nível do SQLDataSet que utilizava para extração de dados, resolvi isso utilizando o mestre-detalhe a nível de CDS...
Colega, tive o mesmo problema que você mas não posso implementar o mestre-detalhe a nível de CDS pois estou utilizando multicamadas... Alguém poderia dar uma outra dica deste BUG?? Cara, decepcionei com o Delphi GERAL agora... Só foi adicionar campos calculados no CDS... Tava funcionando belezinha... e o pior... Já tentei remover todos os fields e NADA! Alguém pode me ajudar? Afinal de contas, não posso migrar pra C# da noite pro dia... Ainda preciso do Delphi...
[]´s
GOSTEI 0
Michaell
16/04/2005
Pessoal,
Só acrescentando... Eu tenho um campo ID na tabela, sendo que no SQLDataSet e no ClientDataSet eu configurei o ProviderFlags apenas dele (que é a chave primária) como pfInKey e os outros Fields estão com ProviderFlags como pfInUpdate e pfInWhere. No DataSetProvider o UpdateMode está como upWhereAll.
[]´s
Só acrescentando... Eu tenho um campo ID na tabela, sendo que no SQLDataSet e no ClientDataSet eu configurei o ProviderFlags apenas dele (que é a chave primária) como pfInKey e os outros Fields estão com ProviderFlags como pfInUpdate e pfInWhere. No DataSetProvider o UpdateMode está como upWhereAll.
[]´s
GOSTEI 0
Michaell
16/04/2005
:( Ninguém pessoal?
GOSTEI 0
Otto
16/04/2005
cara, isso que vc falou nao fiz nada, mas, dei um jeito aqui comigo que pegou na moral, foi isso ó, após abrir a query eu fiz:
for i:=1 to LQry.FieldCount do LQry.Fields.FieldByNumber(i).Required := false;
GOSTEI 0