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

em seus blocos de banco de dados, ao utilizar o bloco iniciar transação, uma segunda camada de controle de transação é criada.
Nota
titleAtenção

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

  1. "...": abre a janela para selecionar a entidade (Figura 3);
  2. 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.

Informações

Para saber mais sobre transação, acesse esse link: 

Transação (banco de dados)