-
Notifications
You must be signed in to change notification settings - Fork 40
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
Comments
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. 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. |
Boa tarde,
Você teria um exemplo de código usando a melhor pratica para CREATE,
INSERT, UPDATE e Delete?
Vi muitos exemplos, contudo, não sei qual seria o mais indicado para
evitar falhas.
Atenciosamente,
Em 26/05/2021 17:21, flsobral escreveu:
Olá @MauroLacerdaNG2021 <https://github.com/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.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#345 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AUGRRA7BCRFICI4UL7J3WTLTPVJ57ANCNFSM45PBDJTA>.
--
Mauro Lacerda
Gestor de TI
off.: + 55 (11) 4107 0662 / cell.: +55 (24) 99949 0458
Av. Regente Feijó, 944 - sala 510 B - Vila Regente Feijó / São Paulo / Brasil
www.nginfra.com.br | www.seureca.veolia.com
…--
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus
|
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:
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
The text was updated successfully, but these errors were encountered: