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 transação (begin transaction
) da entidade selecionadaInicia uma transação com um banco de dados associado a um determinado namespace.
O Cronapp já possui um serviço de controle de transação em seus blocos de banco de dados, ao utilizar o bloco iniciar transação Iniciar Transação, uma segunda camada de controle de transação é criada. Este bloco utiliza a interface java TransactionManager, ela define os métodos que permitem que um servidor de aplicações gerencie limites de transações.
Image Added
Figura 1 - Bloco Iniciar Transação
Nota | ||
---|---|---|
O bloco Iniciar 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
Sobre o bloco
Ao clicar no ícone da engrenagem (seta da Figura 1), será aberto a janela de configuração (Figura 2), 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
A fim de evitar problemas futuros na aplicação do usuário, é estritamente necessário entender o escopo do projeto e saber quando utilizar os blocos de transação, evitando, por exemplo, fechar um ciclo de transação fora do escopo do bloco de programação. Algumas funções de banco de dados já possuem internamente o método commitTransaction. |
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 com o objetivo de inserir dados na entidade "carro", os dados são obtidos através do bloco Obter valor do campo, que receberá os inputs do componente entrada de texto, em seguida, é necessário commitar a transação. Caso a operação não ocorra de forma correta, o erro será impresso no console do depurador e a operação será desfeita através do bloco Rollback 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
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)