Fórum ClientDataSet não atualiza - DbExpress #375672
06/10/2009
0
Galera to com uma problemao aqui. Meu ClientDataSet só atualiza, depois q fecho o sistema. No AfterPost, coloquei:
procedure TDataModule1.ClientDataSet1AfterPost(DataSet: TDataSet); begin (DataSet as TClientDataSet).ApplyUpdates(0); (DataSet as TClientDataSet).refresh; (DataSet as TClientDataSet).Close; (DataSet as TClientDataSet).open; Application.MessageBox(´Registro gravado com sucesso!´,´Atenção´, MB_OK + MB_ICONINFORMATION); end;
Uso DbExpress + MySQL 5 + Delphi 2009 + CDS + DataSetProvider + SimpleDataSet + SQLTable (ufa!!!). A ligação tá certa (acho...)
Se alguem puder ajudar. Agradeço.
Att
Dalton
Dbergkamps10
Curtir tópico
+ 0Posts
07/10/2009
Dogu
Se um deles altera os dados e estes dados não estão no banco ou somente na memoria ram local isso vira uma bagunça não acha?
Gostei + 0
08/10/2009
Dogu
Porém, isso tbm aumenta o tráfego e consumo de banda da sua rede, principalmente se houver constantes alterações nos dados.
Gostei + 0
08/10/2009
Junior Miranda
Galera to com uma problemao aqui. Meu ClientDataSet só atualiza, depois q fecho o sistema. No AfterPost, coloquei:
Código:
procedure TDataModule1.ClientDataSet1AfterPost(DataSet: TDataSet);
begin
(DataSet as TClientDataSet).ApplyUpdates(0);
(DataSet as TClientDataSet).refresh;
(DataSet as TClientDataSet).Close;
(DataSet as TClientDataSet).open;
Application.MessageBox(´Registro gravado com sucesso!´,´Atenção´, MB_OK + MB_ICONINFORMATION);
end;
Uso DbExpress + MySQL 5 + Delphi 2009 + CDS + DataSetProvider + SimpleDataSet + SQLTable (ufa!!!). A ligação tá certa (acho...)
Se alguem puder ajudar. Agradeço.
Faça um teste...
Coloque os componentes de acesso a dados direto no formulário e chame o applyupdate/refresh direto pelo formulário. Funcionando, veja por exemplo como o datamodule está sendo instanciado(veja se não está no autocreate e vc tb o instancia manualmente). Pela descrição, me parece com problema de objeto em memória.
Verdade! Como é que posso atualizar os dados corretamente quando tenho uns 10 computadores na rede local usando o mesmo banco de dados?
Se um deles altera os dados e estes dados não estão no banco ou somente na memoria ram local isso vira uma bagunça não acha?
a reposta para isto é... Transação.
Aproveitando... Alguém saberia dizer o porque que as tags de formatação do forum não estão funcionando no IE8 e Chrome 4.0.220.1?? ou é só comigo?
[]´s
Gostei + 0
08/10/2009
Steve_narancic
Na verdade a propriedade KeepConection (ManterConectado) do SQLConnection serve para manter o sqlconnection conectado com o banco de dados, ou seja se ela estiver como false o SQLConnection vai fechar a conexão com o banco de dados após cada requisição, e vai reabrir automaticamente antes de cada requisição;
tipo ao dar um insert no dataset o que o dbexpress vai fazer:
- Abrir conexão com o banco de dados
- Fazer o Insert
- Fechar novamente a conexão com o banco de dados
e se a propriedade keepconnection estiver como true, ele não fecha a conexão, fazendo o INSERT direto sem precisar conectar com o banco...
tem que se tomar cuidado com essa propriedade pois pode haver perda de performance em determinadas situações....
Gostei + 0
08/10/2009
Steve_narancic
Na verdade a propriedade KeepConection (ManterConectado) do SQLConnection serve para manter o sqlconnection conectado com o banco de dados, ou seja se ela estiver como false o SQLConnection vai fechar a conexão com o banco de dados após cada requisição, e vai reabrir automaticamente antes de cada requisição;
tipo ao dar um insert no dataset o que o dbexpress vai fazer:
- Abrir conexão com o banco de dados
- Fazer o Insert
- Fechar novamente a conexão com o banco de dados
e se a propriedade keepconnection estiver como true, ele não fecha a conexão, fazendo o INSERT direto sem precisar conectar com o banco...
tem que se tomar cuidado com essa propriedade pois pode haver perda de performance em determinadas situações....
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)