Programação, Genexus
Referenciado por: Dicas Técnicas | Padrões de Programação em Genexus |
Este artigo serve para dar maiores informações para quem precisa eleger o melhor método de alterar um registro no banco de dados em Genexus.
Comparativo
| Técnica | Data Provider e Bussiness Component | For Each e Bussiness Component | For Each |
| Sintaxe | &lista = Data Provider()
For &item in &lista
BC.Load(&item.<chave>)
BC.<campo> = <valor>
BC.Save()
Endfor
| For Each
BC.Load(&item.<chave>)
BC.<campo> = <valor>
BC.Save()
Endfor
| For Each
<campo> = <valor>
Endfor
|
| Comandos de banco | select de vários registros select 1 registro para update update | select de vários registros select 1 registro para update update | select de vários registros update |
| Respeita regras da transação | Sim | Sim | Não |
| Comparações | - Performático + Estruturado + Seguro | - Performático - Estruturado + Seguro | + Performático - Estruturado - Seguro |
Transações de Banco Utilizando Várias Procedures
Para que uma procedure faça alteração de banco dentro de uma transação, é necessário definir a propriedade Commit on Exit da procedure.
Por padrão, o Genexus faz Commit ao final de cada procedure. Para uma procedure apenas execute uma atualização, e não controle a transação do banco, é necessário que ela seja Commit on Exit=False.