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

Fabrício Fadel Kammer ffkammer em conchalnet.com.br
Ter Nov 11 15:31:18 -03 2008


Uma coisa que percebi agora nos campos do TField do TClientDataSet é que 
os campos calculados no TIBQuery são do tipo fkInternalCalc, enquanto 
que no TCliendDataSet esses campos vem como sendo do tipo fkData, será 
que isso pode ser o problema?

Obrigado

Fabrício Fadel Kammer escreveu:
> 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
>>
>
>
> ______________________________________________
> 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