[firebase-br] Firebird+IBX+ClientDataSet - Meio OFF

Fabrício Fadel Kammer ffkammer em conchalnet.com.br
Ter Nov 11 13:01:48 -03 2008


Percebi uma coisa, se eu altero o conteúdo de um campo calculado do FB 
durante o Append no ClientDataSet funciona corretamente, não dá nenhum erro.

Porém se eu der um Edit no ClientDataSet e tentar alterar o valor de um 
campo calculado no FB e em seguida dar um Post recebo a mensagem: 
"Trying to modify a read-only field"

Agora a pergunta, pq esse erro só ocorre na edição do registro e não na 
inclusão??

PS: Fiz um teste simples, em um botão eu incluo um registro na tabela 
setando o campo calculado com valor 10. Em um outro botão eu dou um Edit 
na tabela e altero o valor desse campo para 11 e dou um Post. Pronto o 
erro ocorre. Tudo isso sem dar o applyupdates, apenas trabalhando com o 
dados em memória.

Se alguém tiver uma solução para meu problema ficarei muito grato.

Abraços

Fabrício


Fabrício Fadel Kammer escreveu:
> Obrigado pela resposta Sandro, mas os dados não estão em cache no 
> ClientDataSet?
>
> Eu fazia isso normalmente quando usava TIBDataSet, a única coisa é que 
> eu não enviava os dados no Update da tabela. Será que terei que criar 
> campos calculados no Delphi para resolver esse problema???
>
> Isso vai complicar bastante pra mim, pois essa rotina é bem complexa 
> em meu sistema e eu teria que alterar muitas informações no código fonte.
>
> []s
>
> Fabrício
>
> Sandro escreveu:
>> Não é permitido alterar um valor de um campo do clientdataset quando 
>> este
>> campo está associado a um campo calculado da query.
>>
>> Acho que é isso.
>> ----- Original Message ----- From: "Fabrício Fadel Kammer" 
>> <ffkammer em conchalnet.com.br>
>> To: "Lista Firebase" <lista em firebase.com.br>
>> Sent: Monday, November 10, 2008 5:59 PM
>> Subject: [firebase-br] Firebird+IBX+ClientDataSet - Meio OFF
>>
>>
>> Boa tarde pessoal, quero deixar meu sistema com transações menores
>> possível, para tanto estou migrando a forma de acesso aos dados do
>> TIBDataSet para TIBQuery+TDataProvider+TClientDataSet.
>>
>> Só que estou com um problema há 4 dias que não consigo resolver, se
>> alguém na lista puder me auxiliar:
>>
>> Quando dou um post no ClientDataSet recebo a mensagem: "trying to modify
>> a read-only field". O problema é que nenhum campo no TField está com a
>> propriedade ReadOnly=true. Também alterei o ProvideFlags dos campos que
>> não quero que sejam atualizados no banco pelo ClientDataSet (Campos
>> calculados do Firebird).
>>
>> Em meu sistema eu calculo os valores dos campos calculados do Firebird e
>> altero esses campos para que, durante a inclusão de uma venda, os totais
>> (campos calculados) sejam exibidos. Usava isso com ClientDataSet e
>> funcionava perfeitamente bem, porém agora com o ClientDataset, na hora
>> que dou um post recebo a mensagem informada acima.
>>
>> Estou colocando todos os campos no TFields, e todos eles estão com os
>> flags required=false e readonly=false. Os campos calculados do Firebird
>> eu deixei o ProviderFlags em branco (todas opções false).
>>
>> Algum colega da lista poderia me ajudar?
>>
>> Obrigado
>>
>>
>> Fabrício
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use: 
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>   
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>





Mais detalhes sobre a lista de discussão lista