[Cascavel-pm] Res: Res: Res: Duvida $dbh->prepare

Patty Silva ptfzs em yahoo.com.br
Sexta Janeiro 26 07:55:52 PST 2007


Obrigada Nelson.

Inclui  eval{ };die $@ if defined $@;

e
 if( $@ ){
    $dbh->rollback;
     die "Problema na Base de Dados: $@";
   }



Thanks :)

----- Mensagem original ----
De: Nelson Ferraz <nferraz em gmail.com>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Sexta-feira, 26 de Janeiro de 2007 15:45:33
Assunto: Re: [Cascavel-pm] Res:  Res: Duvida  $dbh->prepare

Patty Silva wrote:
> sub insert
> {
> 
> my ($nome,$var,$flag, em datas)=@_;
> 
> 
> my $sql = qq/ INSERT INTO tablea(Nome,Data) VALUES(?,?) ON DUPLICATE KEY UPDATE $var="$flag" /;
> 
> 
> eval 
> {
>         $sth2 = $dbh->prepare($sql);
> 
>         foreach my $data(@datas)
>         {      
>             $sth2->execute($nome,$data);
> 
>   
>         }
>     $sth2->commit;
>         
> };
> 
> }

Patty,

Você colocou o código dentro de um eval, o que é bom, mas não verificou
se ele retornou um erro, o que é mau.

Seria melhor fazer o seguinte:

eval {
  # código
};

# tratamento de erros
die $@ if defined $@;


Esconder mensagens de erro é o mesmo que varrer a sujeira pra debaixo do
tapete: você deixa de enxergar o problema, mas ele continua lá.

[]s

Nelson

_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm






__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070126/c78480b6/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm