<p dir="ltr">Poxa.. </p>
<p dir="ltr">Eu já tratei esses erros e geralmente um $@ =~ /nome-de-pk-ou-uniq/ e isso já basta. Não é toda hora, pra não dizer que, apps mudam de banco. </p>
<p dir="ltr">Ao menos que você esteja fazendo algo bem simples que não use funções específicas de nenhum, você sempre vai ter estar em um banco que diz qual o nome do unique que deu erro<br></p>
<div class="gmail_quote">On Sep 14, 2013 10:07 PM, "Marcio - Google" <<a href="mailto:marciorp@gmail.com">marciorp@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p dir="ltr">Solli++++++++</p>
<p dir="ltr">> O perl não possui um sistema de Exception decente, e o DBIx::Class também não faz nada muito avançado neste sentido.</p>
<p dir="ltr">Vou dormir mais tranquilo, já tava começando a achar que meu QI era muito pequeno para usar Perl, principalmente no que diz respeito a tratamento de exceções/erros.</p>
<p dir="ltr">Isso é o que mais patino. Tem coisas que não consigo tratar e não tem acordo.</p>
<p dir="ltr">[...]'s</p>
<p dir="ltr">Marcio</p>
<p dir="ltr">========================================<br>
########### Campanha Ajude o Marcio! ###########<br>
<a href="http://sosmarcio.blogspot.com.br/" target="_blank">http://sosmarcio.blogspot.com.br/</a><br>
<a href="http://www.vakinha.com.br/VaquinhaP.aspx?e=195793" target="_blank">http://www.vakinha.com.br/VaquinhaP.aspx?e=195793</a><br>
========================================<br>
Em 14/09/2013 18:56, "Solli Honorio" <<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>> escreveu:<br>
><br>
> Bom, descobri um motivo para não utilizar a abordagem que eu estava imaginando. <br>
><br>
> O perl não possui um sistema de Exception decente, e o DBIx::Class também não faz nada muito avançado neste sentido. Atualmente o DBIx::Class gera um exception simplório através do DBIx::Class::Exception, que não tem nenhuma maneira simples de identificar o motivo do erro.<br>


><br>
> Na solução atual eu preciso parsear o mensagem de string, mas isto tem um problema. Cada banco de dados pode gerar uma mensagem diferente para o mesmo problema (neste caso colisão de índice único) e aí eu preciso criar uma enorme estrutura de parser para atender todos os bancos, ou pelo menos a maioria (ah, que inveja do Java !!!).<br>


><br>
> Ou seja, é melhor ser educado e fazer as perguntas corretas ao banco :D !!<br>
><br>
> Abraços,<br>
><br>
> Solli Honorio<br>
><br>
><br>
> Em 14 de setembro de 2013 15:22, Lucas Mateus <<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank">lucasmateus.oliveira@gmail.com</a>> escreveu:<br>
><br>
>><br>
>>         Boa pergunta André. É um teste simples de fazer, que acha de fazer em seu SGBD preferido e nos dizer ?<br>
>><br>
>><br>
>><br>
>> Em 14/09/2013, às 14:39, André Walker <<a href="mailto:andre@andrewalker.net" target="_blank">andre@andrewalker.net</a>> escreveu:<br>
>><br>
>> > On Sat, Sep 14, 2013 at 12:44:35PM -0300, Lucas Mateus wrote:<br>
>> >> Para tornar esse processo mais rápido eu crio um campo do tipo binary 16<br>
>> >> bytes e gravo o md5 (binario sem hexadecimal) do email e utilizo ele para<br>
>> >> consulta.<br>
>> >> Algo assim: select id from users where email_md5 = md5('fulano@bla') and email = 'fulano@bla';<br>
>> >> Onde somente o campo email_md5 tem index e você tem certeza que ele sempre<br>
>> >> terá 16 bytes, se você tiver 1 milhão de usuários essa consulta terá um<br>
>> >> custo risório. A segunda comparação é somente para evitar colisões de md5 e<br>
>> >> o index é feito somente no campo email_md5.<br>
>> ><br>
>> > Será que isso é realmente necessário? Quer dizer... qual o problema de ter um<br>
>> > índice no campo email mesmo? De qualquer forma, você já vai ter um custo<br>
>> > computacional na função md5 (ainda que pequeno), e tenho a impressão que<br>
>> > índices em campos texto não são tão ruins assim. Talvez varie de SGBD pra<br>
>> > SGBD? Em PostgreSQL, por exemplo, seria relevante ter essa coluna email_md5?<br>
>> ><br>
>> > Att.<br>
>> > André<br>
>> ><br>
>> > =begin disclaimer<br>
>> >  Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>> > SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
>> > L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>> > =end disclaimer<br>
>><br>
>> =begin disclaimer<br>
>>    Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>>  SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
>>  L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>> =end disclaimer<br>
><br>
><br>
><br>
><br>
> -- <br>
> "o animal satisfeito dorme". - Guimarães Rosa<br>
><br>
> =begin disclaimer<br>
>    Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>  SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
>  L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
><br>
</p>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div>