Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

litebase.TableNotClosedException Table not closed properly #345

Open
MauroLacerdaNG2021 opened this issue May 25, 2021 · 2 comments
Open
Labels
bug Something isn't working

Comments

@MauroLacerdaNG2021
Copy link

Describe the bug

Estou recebendo o erro abaixo. Gostaria de saber como resolver. Peço também a explicação sobre a função do purge e do recoverupdate

Devices:

Please complete the following information:

  • System OS (Android 9.0)
  • TotalCross Version:TotalCross-4.4.7

totalcross.ui.Window._postEvent 1143
========== 24/05/2021 12:49:16 TC: 4.4.7 LM: 1.21 ==========litebase.TableNotClosedException Table not closed properly: subcategoria_lig_econ.========== 24/05/2021 12:49:16 TC: 4.4.7 LM: 1.21 ==========litebase.LitebaseConnection.prepareStatement
br.com.nginfra.cadastro.controller.SubcategoriaEconomiaController.obterListaSubcategoriaEconomiaLigacao 22
br.com.nginfra.cadastro.controller.SubcategoriaEconomiaController.converterSubcategoriasTxt 136
br.com.nginfra.cadastro.model.Cadastro.getVetor 552
br.com.nginfra.cadastro.controller.SincronizadorCadastroTablet.setCadastroExecutadoWebService 371
br.com.nginfra.cadastro.controller.SincronizadorCadastroTablet.sincronizar 107
br.com.nginfra.palm.view.SincronismoContainer.sincronizar 82
br.com.nginfra.palm.view.SincronismoContainer.controlPressed 98
totalcross.ui.Control.callEventListeners 2361
totalcross.ui.Control._onEvent 2084
totalcross.ui.Control.postEvent 1668
totalcross.ui.Control.postPressedEvent 529
totalcross.ui.Button.onEvent 515
totalcross.ui.Control._onEvent 2087
totalcross.ui.Control.postEvent 1668
totalcross.ui.Window._postEvent 1143

@MauroLacerdaNG2021 MauroLacerdaNG2021 added the bug Something isn't working label May 25, 2021
@flsobral
Copy link
Member

Olá @MauroLacerdaNG2021 .

Essa exceção indica que a tabela não foi fechada na última execução, e nesse caso basta utilizar o método recoverTable de LitebaseConnection passando o nome da tabela para que ela seja corrigida.

No Litebase, quando um registro é deletado de uma tabela, ele não é imediatamente removido do arquivo da tabela. Os dados são deletados apenas logicamente, ficando apenas inacessível via consulta, mas existindo fisicamente no arquivo.
O método purge pode ser usado para efetivamente remover registros deletados dos arquivos físicos e recriar os índices da tabela.
O uso do purge periodicamente (o intervalo de tempo depende de como o banco é usado) evita que os arquivos do banco ocupem mais espaço em disco que o necessário e também contribui para manutenção da performance dos índices associados a tabela.

Ambas as operações podem ser executadas automaticamente pela aplicação em caso de exceção ou para limpeza dos dados. Elas não são feitas automaticamente pelo próprio Litebase para permitir que o usuário tenha a oportunidade dele mesmo abrir os arquivos do banco para tentar recuperar registros apagados através de delete ou operações interrompidas pelo fechamento inesperado do banco, algo que não pode ser feito após um recover/purge.

@MauroLacerdaNG2021
Copy link
Author

MauroLacerdaNG2021 commented May 26, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants