Sex vs. Database Programming
(para o estudo realizado foi utilizada uma base de dados de motor Oracle e não foi aleijada nenhuma no mesmo processo)
Em primeiro lugar é necessário invocar um grant de acesso à Base de Dados.
O pedido de grant pode despoletar um Raise Exception caso o grant não corra com sucesso. Isto invalidará qualquer sucesso nas operações subsequentes.
Caso o grant corra com sucesso e depois de um certo sleep (com mais ou menos duração, dependendo da velocidade da Base de Dados) é invocado um tão aguardado Insert.
É preciso ter mto cuidado com o primeiro Intert pois pode despoletar um Raise Exception que por sua vez efectue um RollBack e revogue o Grant. É problemático...
Caso o Grant ocorra com sucesso, serão efectuados diversos updates. Casos há em que só o insert signifique o final da operação mas isso são questões para o DBA( DataBase Administrator).
Após alguns updates (dependendo da vontade do programador e da base de dados) é preciso ter cuidado para NUNCA fazer Commit. É necessário efectuar com extremo cuidado o Drop mas NUNCA o commit que significaria problemas acrescidos.
Aqui surge uma nova possibilidade que deve ser investigada depois de alguns Inserts seguidos de diversos Updates:
A eventual possibilidade de efectuar um Loop de EnQueue e DeQueue entusiasma a maioria.
Caso se efectue um EnQueue que despolete um Raise Exception é necessário ter cuidado para não revogar o Grant de Insert e Update!!!!!
Caso contrário pode-se com alguma segurança efectuar um Drop com Commit depois de alguns EnQueues e DeQueues.
É necessário ter cuidado para sempre preservar o Grant, pois sem ele nada feito!
Qualquer dúvida façam favor de perguntar :)
RR