Re: [firebase-br] Dúvidas ClientDataSet
Cezinha
cezinha em unetvale.com.br
Sex Set 24 13:21:39 -03 2004
Vou dar um conselho adicional aos que querem iniciar ou aperceiçoar o uso de ClientDataSets:
Leiam o livro Delphi/Kylix - Desenvolvimento de Banco de Dados - Eric Harmon - Editora Berkeley.
Alguém aqui da lista comentou sobre esse livro e eu comprei. É simplesmente um dos melhores livros técnicos que eu já li.
Sds.,
Cezinha
----- Original Message -----
From: Francisco Thiago Almeida
To: FireBase
Sent: Friday, September 24, 2004 12:12 PM
Subject: Re: [firebase-br] Dúvidas ClientDataSet
Realmente é difícil de se encontrar documentacao boa sobreo CDS... mas vou responder algumas questoes suas:
1) Usando o DataSetProvider eu configuro algumas opções para true:
poCascadeDelete, poCascadeUpdates, poAllowMultipleRecordUpdates e
poPropogateChanges
Eu particularmente não configuro nenhuma delas....
2) Algumas vezes recebo um erro CLientDataset(Nome do componente):
Record not found. Isso acontece em uma relação master detail quando eu
vou editar um registro mestre e surge essa mensagem e ele fecha e abre a
tabela (porém atualiza os dados)
Não sei como você está fazendo as atualizações mas.. recentemente postei uma mensagem aqui na lista com um passo-a-passo de Mestre - detalhe com CDS... seria util pra vc...
3) eu inicio as transações explicitamente, até porque todo o controle de
navegação, inserção, etc eu faço com botões personalizados. Muda alguma
coisa se eu usar o TbNavigator em relação às transações? Em alguns posts
eu li que com o ClientDataSet a transação é iniciada automaticamente
pelo ClientDataset.
Não é necessário Iniciar transacoes com o CDS. O PROVIDER faz isso por vc.. até mesmo em casos de Mestre - Detalhe.. se configurado corretamente
4) Algumas vezes quando abro um formulário com a relação Master-detail
recebo uma mensagem de Key violation (EDBClient). Não consegui
identificar o porque!
Nao sei pq o erro.. mas possivelmente vc tem um valor duplicado e um indice (no CDS) com unique selecionado.... ou pode ser nada disso.. soh olhando o codigo pra saber
5) Algumas tabelas eu uso a ordenação dos dados em um DbGrid com indice
alterável quando clico no título do Grid. No WinXp funciona 100%, já no
WinMe ou inferiores não funciona. Tem alguma incompatibilidade de SO?
Voce modifica o indice do cds certo? Okay. O WinXP e 2000 tem um gerenciamento de memoria melhor que o 9x.. logo, alguma violacao de memoria esta acontecendo nesta troca... Verifique no codigo da troca se algo nao estah errado.. faca isso em um 9x se possivel
6) Existe mais algum cuidado especial que preciso ter (além das relações
corretas) quando uso master-detail e clientdataset + DataSetProvider +
IbDataset + Transaction?
Nenhum.. Só um conselho.. faca a relacao Mestre Detalhe no IBDataSet...
Nao sei se existe esta propriedade no IBDataSet, mas se existir Unidirectional... Coloque True nela.
[]'s e boa sorte!
Thiago
"Ricardo H. Rekowsky" <rekowsky em terra.com.br> wrote:
Pessoal,
passei os últimos dias pesquisando no fórum do ClubeDelphi, vários sites
que tenho cadastrados sobre Delphi aqui no Brasil e fora e pelo Google
sobre como usar o CLientDataSet direito e vi diversas sugestões
contraditórias. Como acabei me confundindo mais do que esclarecendo
gostaria, se possível, contar com a ajuda de vocês para entender melhor
como funciona esse componente (principalmente com o uso de master-
detail) com algumas perguntas:
1) Usando o DataSetProvider eu configuro algumas opções para true:
poCascadeDelete, poCascadeUpdates, poAllowMultipleRecordUpdates e
poPropogateChanges
--> preciso realmente configurar essas opções? por que percebi que sem
elas algumas vezes os dados não são atualizados.
2) Algumas vezes recebo um erro CLientDataset(Nome do componente):
Record not found. Isso acontece em uma relação master detail quando eu
vou editar um registro mestre e surge essa mensagem e ele fecha e abre a
tabela (porém atualiza os dados)
3) eu inicio as transações explicitamente, até porque todo o controle de
navegação, inserção, etc eu faço com botões personalizados. Muda alguma
coisa se eu usar o TbNavigator em relação às transações? Em alguns posts
eu li que com o ClientDataSet a transação é iniciada automaticamente
pelo ClientDataset.
4) Algumas vezes quando abro um formulário com a relação Master-detail
recebo uma mensagem de Key violation (EDBClient). Não consegui
identificar o porque!
5) Algumas tabelas eu uso a ordenação dos dados em um DbGrid com indice
alterável quando clico no título do Grid. No WinXp funciona 100%, já no
WinMe ou inferiores não funciona. Tem alguma incompatibilidade de SO?
6) Existe mais algum cuidado especial que preciso ter (além das relações
corretas) quando uso master-detail e clientdataset + DataSetProvider +
IbDataset + Transaction?
Grato por eventuais esclarecimentos e desculpem o bombardeio de
perguntas.... Mas minhas pesquisas não me levaram mais adiante do que
isto.
Ricardo
______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
-----------------------------------------------
Francisco Thiago de Almeida
MRL Consultoria em Informática
Divisão Desenvolvimento e Banco de Dados
Franca/SP
---------------------------------
Yahoo! Messenger 6.0 - jogos, emoticons sonoros e muita diversão. Instale agora!
______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Mais detalhes sobre a lista de discussão lista