<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:10pt"><div style="font-family: times new roman,new york,times,serif; font-size: 10pt;">Obrigada Nelson.<br><br>Inclui eval{ };die $@ if defined $@;<br><br>e<br> if( $@ ){<br> $dbh->rollback;<br> die "Problema na Base de Dados: $@";<br> }<br><br><br><br>Thanks :)<br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Mensagem original ----<br>De: Nelson Ferraz <nferraz@gmail.com><br>Para: Cascavel Perl Mongers <cascavel-pm@pm.org><br>Enviadas: Sexta-feira, 26 de Janeiro de 2007 15:45:33<br>Assunto: Re: [Cascavel-pm] Res: Res: Duvida $dbh->prepare<br><br><div>Patty Silva wrote:<br>> sub insert<br>> {<br>> <br>> my ($nome,$var,$flag,@datas)=@_;<br>> <br>> <br>> my $sql = qq/ INSERT
INTO tablea(Nome,Data) VALUES(?,?) ON DUPLICATE KEY UPDATE $var="$flag" /;<br>> <br>> <br>> eval <br>> {<br>> $sth2 = $dbh->prepare($sql);<br>> <br>> foreach my $data(@datas)<br>> { <br>> $sth2->execute($nome,$data);<br>> <br>> <br>> }<br>> $sth2->commit;<br>> <br>> };<br>> <br>> }<br><br>Patty,<br><br>Você colocou o código dentro de um eval, o que é bom, mas não verificou<br>se ele retornou um erro, o que é mau.<br><br>Seria melhor fazer o seguinte:<br><br>eval {<br> # código<br>};<br><br># tratamento de erros<br>die $@
if defined $@;<br><br><br>Esconder mensagens de erro é o mesmo que varrer a sujeira pra debaixo do<br>tapete: você deixa de enxergar o problema, mas ele continua lá.<br><br>[]s<br><br>Nelson<br><br>_______________________________________________<br>Cascavel-pm mailing list<br>Cascavel-pm@pm.org<br><a target="_blank" href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></div></div><br></div></div><br>__________________________________________________<br>Fale com seus amigos de graça com o novo Yahoo! Messenger <br>http://br.messenger.yahoo.com/ </body></html>