Bug no ClientDataSet
Estou tendo dificuladades ao usar o clientdataset no delphi 7, parece que ele tem um bug.....
Meu problema é com clientdataset desvinculado de qualquer tabela fisica.
Como acontece: crie um novo clientdataset (cds) numa form, adicione um campo qualquer de qualquer tipo, como fkdata. Depois adicione um outro campo qualquer como fkinternalCalc.... ou seja, um cds com 2 cam pos, sendo um deles internalcalc.
dê o comando create dataset, depois dê um clear data e depois um create dataset de novo....... PAM!!!! Name is not unique in this context!!!!
Isso só acontece quando tem campos do tipo internalcalc no cds, e se tiver somente campos desse tipo, ele nem cria o dataset. Para resolver isso eu tenho que copiar todos os campos de cds e colar em outro cds.
Alguém conhece um modo mais correto, elegante ou seja lá o que for para eu resolver esse problema?
Agradeço desde Já!!!!
Meu problema é com clientdataset desvinculado de qualquer tabela fisica.
Como acontece: crie um novo clientdataset (cds) numa form, adicione um campo qualquer de qualquer tipo, como fkdata. Depois adicione um outro campo qualquer como fkinternalCalc.... ou seja, um cds com 2 cam pos, sendo um deles internalcalc.
dê o comando create dataset, depois dê um clear data e depois um create dataset de novo....... PAM!!!! Name is not unique in this context!!!!
Isso só acontece quando tem campos do tipo internalcalc no cds, e se tiver somente campos desse tipo, ele nem cria o dataset. Para resolver isso eu tenho que copiar todos os campos de cds e colar em outro cds.
Alguém conhece um modo mais correto, elegante ou seja lá o que for para eu resolver esse problema?
Agradeço desde Já!!!!
Vitor Rubio
Curtidas 0
Respostas
Gandalf.nho
12/11/2004
Seu D7 está atualizado?
GOSTEI 0
Gurc
12/11/2004
Olha cara, o ClientDataSet, na minha opinião, é um dos componentes mais fantásticos que a Borland já criou. Para trabalhar com ele em memória você deve, primeiramente, definir os campos para, depois de executar o comando CreateDataSet, criá-los de maneira persistente.
Faça o seguinte.
- Coloque um ClientDataSet no Container e dê um duplo clique na propriedade FieldDefs;
- Adicione os campos e configure seus tipos;
- Execute o CreateDataSet.
Agora você pode trabalhar normalmente como se fosse em um banco de dados. Dê um duplo-clique no ClientDataSet e tente executar um Add All Fields. Os Fields estarão lá como se você estivesse ligado a um DataSetProvider.
Qualquer maior informação entre em contato.
Gustavo Royer Chaurais
Faça o seguinte.
- Coloque um ClientDataSet no Container e dê um duplo clique na propriedade FieldDefs;
- Adicione os campos e configure seus tipos;
- Execute o CreateDataSet.
Agora você pode trabalhar normalmente como se fosse em um banco de dados. Dê um duplo-clique no ClientDataSet e tente executar um Add All Fields. Os Fields estarão lá como se você estivesse ligado a um DataSetProvider.
Qualquer maior informação entre em contato.
Gustavo Royer Chaurais
GOSTEI 0
Dopi
12/11/2004
Também notei o mesmo problema no Delphi 7 já com o Update aplicado...
O jeito é definir bem os campos e criar o arquivo só uma vez...
Mas felizmente parece ser um bug de DesigTime se for via código roda bem....
O jeito é definir bem os campos e criar o arquivo só uma vez...
Mas felizmente parece ser um bug de DesigTime se for via código roda bem....
GOSTEI 0
Vitor Rubio
12/11/2004
Pessoal, meu delphi 7 está atualizado e OK
Não tenho problemas para criar um dataset e usá-lo como uma tabela de um BD, isso quando os campos já estão definidos e não precisarão ser alterados. o problema é quando eu preciso alterar um campo...... se existir algum campo internalcalc eu não consigo dar um ´clear data´ e depois criat o dataset de novo. Ocorre a mensagem citada acima.
concordo plenamente com você, mas que têm certos bugs tem.....
alem disso, vc já viu o xml gerado pelo cds? não é indentado e nem pula linhas, definitivamente não dá pra alterar ele com o bloco de notas :shock: , mas isso é outro assunto......
Não tenho problemas para criar um dataset e usá-lo como uma tabela de um BD, isso quando os campos já estão definidos e não precisarão ser alterados. o problema é quando eu preciso alterar um campo...... se existir algum campo internalcalc eu não consigo dar um ´clear data´ e depois criat o dataset de novo. Ocorre a mensagem citada acima.
o ClientDataSet, na minha opinião, é um dos componentes mais fantásticos que a Borland já criou.
concordo plenamente com você, mas que têm certos bugs tem.....
alem disso, vc já viu o xml gerado pelo cds? não é indentado e nem pula linhas, definitivamente não dá pra alterar ele com o bloco de notas :shock: , mas isso é outro assunto......
GOSTEI 0
Gurc
12/11/2004
[quote:5e60100bc1=´vitor^_^´]
concordo plenamente com você, mas que têm certos bugs tem.....
alem disso, vc já viu o xml gerado pelo cds? não é indentado e nem pula linhas, definitivamente não dá pra alterar ele com o bloco de notas :shock: , mas isso é outro assunto......[/quote:5e60100bc1]
Trabalhei muito com o ClientDataSet pra aplicações em 2 ou mais camadas e bugs achei muito poucos, sinceramente... agora, você tocou num ponto interessante, por que não fizeram um XML melhorzinho? hehe
:D
concordo plenamente com você, mas que têm certos bugs tem.....
alem disso, vc já viu o xml gerado pelo cds? não é indentado e nem pula linhas, definitivamente não dá pra alterar ele com o bloco de notas :shock: , mas isso é outro assunto......[/quote:5e60100bc1]
Trabalhei muito com o ClientDataSet pra aplicações em 2 ou mais camadas e bugs achei muito poucos, sinceramente... agora, você tocou num ponto interessante, por que não fizeram um XML melhorzinho? hehe
:D
GOSTEI 0