Fórum Data Source na Atualiza na Execução do Programa #387063
24/09/2010
0
problema, em minha aplicação uso o ADOConnection, o ADODataSet, o Data Set
Provider, e o Client Data Set, e nas minhas tabelas nos códigos das Chaves
Primarias tenho auto incremento, o programa esta salvando normalmente no banco,
mas não consigo visualizar o que salvei, tenho que fechar a aplicação e
executar novamente para poder ver o registro adicionado. Tenho um formulário de
cliente e um de pesquisa de cliente que esta ligado com o de cliente, salvo um
novo cliente, clico em pesquisar no formulário de pesquisa esse registro não
esta la, reinicio a aplicação vou em pesquisar e ta la o registro, acredito que
o DataSource não esta atualizando em tempo de execução, já tentei de tudo
DataSource1.DataSet.Open e DataSource1.DataSet.Close em vários lugares no Form
de Cliente e Pesquisa mas não consigo resolver o problema se alguém poder
ajudar.Obrigado.
Bruno Vba
Curtir tópico
+ 0Posts
24/09/2010
Rafael Ribeiro
Na propriedade options do provider tem uma opção de auto-refresh. Vc já tentou a habilitar ?
Abraços, Rafael
Gostei + 0
24/09/2010
Wilson Junior
Espero ter colaborado.
Gostei + 0
24/09/2010
Bruno Vba
Erro: Must apply updates before refreshing data
Pessoal se isso ajudar aqui meu codigo do salvar:
procedure TFrmModelo.BtnSalvarClick(Sender: TObject); var Errors : integer;begin if Verifica_Campos_Em_Branco then begin DataSource1.DataSet.Post; Errors:=(DataSource1.DataSet as TClientDataset).ApplyUpdates(0); if Errors > 0 then DataSource1.DataSet.Edit; DataSource1.DataSet.Close; end else abort; end;
Gostei + 0
24/09/2010
Marco Salles
Erro: Must apply updates before refreshing data
Pessoal se isso ajudar aqui meu codigo do salvar:
procedure TFrmModelo.BtnSalvarClick(Sender: TObject); var Errors : integer; begin if Verifica_Campos_Em_Branco then begin DataSource1.DataSet.Post; Errors:=(DataSource1.DataSet as TClientDataset).ApplyUpdates(0); if Errors > 0 then DataSource1.DataSet.Edit; DataSource1.DataSet.Close; end else DataSource1.DataSet.Refresh; // coloque aqui // abort; porque abortar ??? Abort gera uma exceção silenciosa // da mesma forma que o Raise exception.Create , porém silenciosa //se quiser sair do fluxo use o exit end;
Gostei + 0
24/09/2010
Rafael Ribeiro
TclientDataSet(Dataset).applyupdates(0);
e deixe o auto refresh do provider.
Rafael
Gostei + 0
24/09/2010
Rafael Ribeiro
Abraços
Gostei + 0
24/09/2010
Marco Salles
TclientDataSet(Dataset).applyupdates(0);
e deixe o auto refresh do provider.
Rafael
raise Exception.Create('Erro ao gravar no banco de dados')
else
TClientDataSet(DataSet).Refresh;
Gostei + 0
24/09/2010
Bruno Vba
Muito Obrigado Pela ajuda, deu certo aqui, to programando em camadas resolvi o
problema, na camada do servidor meu ADODataSet de cliente estava ativo,
desativei ele, agora esta atualizando em tempo de execução, Valeu Pessoal.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)