Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Iniciar Transação
Marca um ponto inicial sobre uma Define o início de um ciclo de transação (begin transaction
) da entidade selecionada.O Cronapp já possui dentro de uma thread. Esse bloco deve ser associado ao banco de dados vinculado ao namespace selecionado.
Image Added
Figura 1 - Bloco Iniciar 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 |
Nota | ||
---|---|---|
| ||
O bloco iniciar 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.
Image Removed
Figura 1 - Configurando iniciar transação
Ao clicar no ícone da engrenagem (seta da Figura 1), será aberto a janela de configuração, onde é possível selecionar a entidade que será usada na transação.
Image Removed
Figura 2 - Janela de configuração do bloco
- "...": abre a janela para selecionar a entidade (Figura 3);
- Recarrega a lista de entidades exibida na janela (Figura 3).
Image Removed
Figura 3 - Janela de seleção da entidade
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.beginTransaction()
Retorno
O bloco não possui retorno.
Parâmetros
O bloco não possui parâmetros.
Características do bloco
O bloco Iniciar 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 (destaque 1 da figura 2).
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
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)