Open MauroLacerdaNG2021 opened 3 years ago
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.
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 https://github.com/TotalCross/totalcross/issues/345#issuecomment-849091413, 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 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