ClientDataSet :: Field value required

Delphi

16/04/2005

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:
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

Otto

Curtidas 0

Respostas

Nerdex

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]


GOSTEI 0
Otto

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

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

Bruno Belchior

16/04/2005

vc está usando Mestre-Detalhe?


GOSTEI 0
Otto

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


GOSTEI 0
Vinicius2k

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 :
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

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

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:


GOSTEI 0
Michaell

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

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


GOSTEI 0
Michaell

Michaell

16/04/2005

:( Ninguém pessoal?


GOSTEI 0
Otto

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
POSTAR