[sapl-dev] Integridade referencial do Banco de Dados do SAPL

Angelo Marcondes de Oliveira Neto angelomarcondes em gmail.com
Terça Setembro 25 12:11:42 BRT 2012


Amigos,

Estou preocupado com a integridade referencial dos banco de dados do SAPL e
por isso estou lhes escrevendo, com objetivo de discutirmos qual a melhor
maneira de evitar que existam quebras de referências, seguindo a linha de
uma discussão iniciada pelo Xiru e pelo Damiatti, anteriormente.
Abaixo, segue uma proposta de código para verificar a integridade, antes da
exclusão do parlamentar, ou seja do formulário *
parlamentar_excluir_proc.dtml*.
Gostaria da analise de todos, e saber se esta é a melhor opção no momento e
se posso trabalhar neste sentido.


<dtml-comment>
*****************************************************************
*   Função: Esse método apenas chama o Método SQL de exclusão do*
*       parlamentar, isto é, o método que atribui a verdadeiro o*
*       campo ind_excluido do parlamentar cujo o cod_parlamentar*
*       é recebido.                                             *
*   Argumentos: cod_parlamentar : int - o código do parlamentar *
*       a ser escluído.                                         *
*   Retorno: Atribuição do flag ind_excluido do parlamentar e   *
*       redirecionamento para a página de parlamentares.        *
*   Michael S. Onishi / Daniel C. Azevedo em 01-03-2001.        *
*****************************************************************
* UPDATE                                                        *
*    Ao se excluir um parlamentar, alteramos o índice da tabela *
*  com o autor correspondente (ind_excluido=1) representado a   *
*  exclusão desse relacionamento, além da exclusão, se houver,  *
*  do username cadastrado no acl_user como login.               *
*  Rogério Ueda em 18-12-2003                                   *
*****************************************************************
</dtml-comment>

<dtml-if
expr="zsql.composicao_comissao_obter_zsql(cod_parlamentar=cod_parlamentar)">
  <dtml-let mensagem="'Parlamentar está cadastro como membro de
comissão(ões) e não pode ser excluído!'">
     <dtml-var mensagem_emitir>
  </dtml-let>
<dtml-elif
expr="zsql.composicao_mesa_obter_zsql(cod_parlamentar=cod_parlamentar)">
  <dtml-let mensagem="'Parlmentar está cadastrado como membro de mesa
diretora e não pode ser excluído'">i
     <dtml-var mensagem_emitir>
</dtml-let>
<dtml-elif
expr="zsql.composicao_mesa_sessao_obter_zsql(cod_parlamentar=cod_parlamentar)">
  <dtml-let mensagem="'Parlmentar está cadastrado como membro de mesa
diretora de sessão plenária e não pode ser excluído'">i
     <dtml-var mensagem_emitir>
        </dtml-let>


<dtml-else>
<dtml-try>
   <dtml-call
expr="zsql.parlamentar_excluir_zsql(cod_parlamentar=cod_parlamentar)">
<dtml-except>
  <dtml-let mensagem="'Houve um erro! Parlamentar não excluído!'">
     <dtml-var mensagem_emitir>
  </dtml-let>
  <dtml-call expr="REQUEST.set('erro', 1)">
</dtml-try>

<dtml-unless erro>
  <dtml-try>
     <dtml-in expr="zsql.autor_obter_zsql(cod_parlamentar=cod_parlamentar)">
        <dtml-call expr="zsql.autor_excluir_zsql(cod_autor)">
        <dtml-call expr="pysc.username_excluir_pysc(username=col_username)">
     </dtml-in>
  <dtml-except>
     <dtml-let mensagem="'Parlamentar Excluído com Sucesso!<BR>Houve um
erro! Autor Não Excluído!'">
        <dtml-var mensagem_emitir>
     </dtml-let>
  <dtml-else>
     <dtml-let mensagem="'Parlamentar Excluído com Sucesso!'" sucesso="1">
        <dtml-var mensagem_emitir>
     </dtml-let>
  </dtml-try>

</dtml-unless>

</dtml-if>




UaiGeek - Angelo Marcondes de Oliveira Neto. <angelomarcondes em gmail.com>
#votoemmongaba
Blog do UaiGeek  <http://uaigeek.blogspot.com>
Carneirinho - MG <http://pt.wikipedia.org/wiki/Carneirinho>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
P: Por que esta mensagem é tão curta?
R: http://3frases.efetividade.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.interlegis.gov.br/pipermail/sapl-dev/attachments/20120925/240e59c5/attachment.htm 


Mais detalhes sobre a lista de discussão SAPL-dev