Banco de Dados não atualiza.

Delphi

Banco de Dados

IBExpert

Firebird

15/05/2020

Olá Pessoal, gostaria de saber porque quando eu gravo um registro no meu banco de dados, esse registro não aparece em tempo real. Ele só aparece
quando eu fecho o meu projeto e abro novamente?
Estou usando os componentes da palheta InterBase (IBDatabase e IBTransaction - http://prntscr.com/shfsab)
Banco de dados feito com o IBExpert.
FireBird 3.0
Rubens Pena

Rubens Pena

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

15/05/2020

você precisa executar um commit ao gravar os dados.
se você usa .Post para gravar, troque por .ApplyUpdates
GOSTEI 0
Rubens Pena

Rubens Pena

15/05/2020

você precisa executar um commit ao gravar os dados.
se você usa .Post para gravar, troque por .ApplyUpdates
Boa noite Emerson

Me retornou esse erro ( http://prntscr.com/shnlho ) "Cachedupdates not enabled"
GOSTEI 0
Dionei Aguiar

Dionei Aguiar

15/05/2020

Olá Pessoal, gostaria de saber porque quando eu gravo um registro no meu banco de dados, esse registro não aparece em tempo real. Ele só aparece
quando eu fecho o meu projeto e abro novamente?
Estou usando os componentes da palheta InterBase (IBDatabase e IBTransaction - http://prntscr.com/shfsab)
Banco de dados feito com o IBExpert.
FireBird 3.0



---------------------------------------------------------------------------------------
Já tentou usar?

IBDatabase.Post;
SQLConnect.Commit;
IBDatabase.Open();

No botão que vc usa para salvar?
GOSTEI 0
Rubens Pena

Rubens Pena

15/05/2020

Olá Pessoal, gostaria de saber porque quando eu gravo um registro no meu banco de dados, esse registro não aparece em tempo real. Ele só aparece
quando eu fecho o meu projeto e abro novamente?
Estou usando os componentes da palheta InterBase (IBDatabase e IBTransaction - http://prntscr.com/shfsab)
Banco de dados feito com o IBExpert.
FireBird 3.0



---------------------------------------------------------------------------------------
Já tentou usar?

IBDatabase.Post;
SQLConnect.Commit;
IBDatabase.Open();

No botão que vc usa para salvar?

Boa tarde Dionei Aguiar

Deixei o código assim e deu certo (acrescentei apenas uma linha no código: Dados.IBTransBanco.CommitRetaining;)
procedure TfrmCores.SpeedButtonBotaoGravarClick(Sender: TObject);
begin
  if ValidaCampos then// joga a função criada aki
    begin
       SpeedButtonBotaoNovo.Enabled    := True;
       SpeedButtonBotaoDeletar.Enabled := True;
       Dados.ibtCores.Post;// Gravar

       Dados.IBTransBanco.CommitRetaining;  // IBTransaction <<<<<<<<<<<<<< acrescentei apenas essa linha de código

       ibAuxCores.Close;// Fechar a ibquery auxibCores (Forum Dev Media)
       ibAuxCores.Open;// Abri a ibquery auxibCores  (Forum Dev Media)
       Dados.ibtCores.Last;

       DesabilitaCampos;

       ShowMessage ('Registro Gravado com Sucesso');
    end
     else
      begin
        ShowMessage ('Erro ao Gravar, verifique os campos obrigatórios!');
      end;
end;


Obrigado a todos pela ajuda .
GOSTEI 0
POSTAR