Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
O commit da transação salva Se não ocorrer nenhum erro durante o ciclo de transação, o bloco Commit da transação
(commit transaction
) irá confirma todas as ações realizadas desde o início da transação permanentemente no banco de dados selecionado, casp não haja nenhum erro.
Informações | ||
---|---|---|
| ||
Deve-se previamente utilizar o bloco iniciar transação para utilizar o bloco commit da transação. |
Aviso | ||
---|---|---|
| ||
O bloco commit de transação somente funciona com blocos do tipo banco de dados. |
Compatibilidade
Image Removed Servidor
Exemplo
A função abaixo inicia a transação sobre a entidade música, no qual vai inserir dados nessa entidade e caso não haja nenhum problema no decorrer, ela será salva permanentemente no banco de dados.
Image Removed
Figura 1 - Configurando commit da transação
com o namespace selecionado.
Image Added
Figura 1 - Bloco Commit da Transação
Nota |
---|
Este bloco utiliza a interface Java TransactionManager. Ela define métodos para possibilitar que o servidor de aplicações gerencie os limites de transações na thread. Dessa forma, o Cronapp oferece um serviço de controle de transação que aguardará o final da thread para definir se irá atualizar o banco de dados (commit) ou não realizar nenhuma ação (rollback). Por isso é importante entender a necessidade do projeto e saber quando utilizar os blocos de transação, evitando, por exemplo, fechar um ciclo de transação fora do escopo da função de bloco de programação. |
Compatibilidade
- Bloco servidor: cronapi.database.Operations.commitTransaction()
Retorno
O bloco não possui retorno.
Parâmetros
O bloco não possui parâmetros.
Características do bloco
O bloco Commit da Transação é vinculado ao namespace da aplicação. Por padrão o Cronapp possui o namespace "app", o qual será utilizado neste exemplo. Para configurá-lo clique no ícone de engrenagem (seta da figura 2), em seguida, será aberta a janela com uma caixa de seleção solicitando a escolha do namespace.
Image Added
Figura 2 - Seleção do namespace
Exemplo
Inicialmente criamos uma entidade denominada "carro" no Diagrama de dados, em seguida, criamos uma view, na qual inserimos dois componentes: entrada de texto e um botão, que será responsável por ativar a função. Para que o exemplo abaixo funcione, é necessário vincular um formulário de referência ao bloco. Acesse o tópico Propriedades do Blockly da documentação Bloco de programação para mais detalhes.
A função abaixo inicia uma transação antes de inserir dados na entidade "carro", os dados são obtidos através dos blocos Obter valor do campo na view. Caso ocorra algum problema, o erro será impresso no Console do Depurador e a operação não será concluída, devido ao bloco Rollback da Transação, do contrário, a operação será finalizada no campo "finally", pelo bloco Commit da Transação. O bloco try catch foi utilizado para garantir o fluxo de execução.
Image Added
Figura 2.1 - Função que inicia uma transação de inserção no banco de dados e a confirma no final
Execute o projeto e preencha os dados necessários.
Image Added
Figura 2.2 - Inserindo dados do carro
O resultado pode ser conferido abaixo. Como não ocorreu nenhum erro durante a transação, os dados foram inseridos de forma correta no banco.
Image Added
Figura 2.3 - Resultado após a inserção dos dados
Nesta página
Índice
Sobre transação em banco de dados
Transação é uma operação (ou um conjunto de operações) executada na sua totalidade - ou seja, se houver alguma falha dentro de alguma das operações, tudo será desfeito; se não, tudo será persistido no banco de dados.
Para saber mais sobre transação, acesse esse link:
Transação (banco de dados)