<div dir="ltr">Mais em<div><a href="http://search.cpan.org/~ribasushi/SQL-Abstract-1.78/lib/SQL/Abstract.pm#Literal_SQL_with_placeholders_and_bind_values_(subqueries)">http://search.cpan.org/~ribasushi/SQL-Abstract-1.78/lib/SQL/Abstract.pm#Literal_SQL_with_placeholders_and_bind_values_(subqueries)</a><br>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-27 17:55 GMT-03:00 Blabos de Blebe <span dir="ltr"><<a href="mailto:blabos@gmail.com" target="_blank">blabos@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">"DBIx::Class é pra quem joga de mono black devotion"</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-27 17:24 GMT-03:00 Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span>:<div>

<div class="h5"><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">ah!<div><br></div><div>Funciona tambem se usar arrayref como bind, no lugar do hash.</div><div><br></div>



<div>uso esse codigo aqui em produção, ai fiquei 'curioso'!</div><div><div>          '+select' => [</div>

<div>                \[</div><div>                    '(SELECT x.period_begin FROM f_extract_period_edge(?, me.valid_from) x)',</div><div>                    [ plain_value => $options{group_by} ]</div><div>                ]</div>





<div>            ],</div><div>            '+as' => ['group_from']</div></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-27 15:51 GMT-03:00 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span>:<div>



<div><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Valeu Renato! <div><br></div><div>Infelizmente, a maneira como você passa o bind também não funcionou. Mas a boa notícia é que encontrei a solução, de qualquer forma. Ficou algo assim:<div>





<br><br><br><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">
<font face="courier new, monospace">my $row = $c->model('DB::Tabela')->search(</font></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><font face="courier new, monospace">    undef,</font></div>






<div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><font face="courier new, monospace">    {</font></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><font face="courier new, monospace">        '+select' => [</font></div>






</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><font face="courier new, monospace">            \['randseq((?)::integer)', 123 ],</font></div><div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">






<font face="courier new, monospace">        ] ,</font></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><font face="courier new, monospace">        '+as' => ['randseq']</font></div>






<div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><font face="courier new, monospace">    },</font></div></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><font face="courier new, monospace">);</font></div>






<br>O problema depois foi descobrir que o número que estava entrando no parâmetro do randseq estourava o tamanho do integer... Aí descobri que o método last_insert_id já retornava o valor sem eu precisar executar o randseq, diferentemente do DBI 'puro'.</div>






<div><br></div><div>Mas ajudou bastante! Obrigado!</div><div><br><br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-27 12:59 GMT-03:00 Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span>:<div>





<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Faça o bind local:<div><br></div><div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">my $row = $c->model('DB::Tabela')->search(</font></div>






<div>

<font face="courier new, monospace">    undef,</font></div><div><font face="courier new, monospace">    {</font></div><div><font face="courier new, monospace">        '+select' => [</font></div><div><font face="courier new, monospace">            \['randseq((?)::integer)', { randseq_param => 123 }],</font></div>









<div><font face="courier new, monospace">        ] ,</font></div><div><font face="courier new, monospace">        '+as' => ['randseq']</font></div><div><font face="courier new, monospace">    },</font></div>








<div><font face="courier new, monospace">)->next;</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"># $row->get_column('randseq');</font></div><div>








<br></div><div><a href="http://search.cpan.org/~ribasushi/SQL-Abstract-1.78/lib/SQL/Abstract.pm#Literal_SQL_with_placeholders_and_bind_values_(subqueries)" target="_blank">http://search.cpan.org/~ribasushi/SQL-Abstract-1.78/lib/SQL/Abstract.pm#Literal_SQL_with_placeholders_and_bind_values_(subqueries)</a></div>









</div><div><br></div><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-27 12:47 GMT-03:00 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span>:<br>









<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Opa, já descobri! Foi mal!<div><br></div><div>Era só passar 'bind', assim:</div>
<div><br></div>

<div>
<div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">$c->model('DB::Tabela)->search(undef, {</div>
</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">                                                        select => ['randseq((?)::integer)  ', ] ,</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">










                                                        as => [qw/randseq/],</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">                                                        bind => [12345],</div>










<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">                                                    }, );<br><br>O problema agora é que o DBIx::Class me solta o seguinte erro:<br><br><div>schema "me" does not exist [for Statement "SELECT me.randseq((?)::integer)  FROM Tabela me" with ParamValues: 1='12345']</div>










<br></div></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">Aparentemente, DBIx::Class não reconhece o apelido que ele mesmo deu pra tabela... :-p</div>










<div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">










Alguma idéia?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-27 12:38 GMT-03:00 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span>:<div>









<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Boa tarde!<div><br></div><div>Alguém pode me dizer como eu envio as bind variables para uma equivalente a query abaixo no DBIx::Class, por gentileza?</div>










<div><br></div><div><br></div><div>SELECT randseq((?)::integer) as randseq FROM Tabela;</div>
<div><br></div><div><br></div><div>Minha tentativa no DBIx::Class</div><div><br></div><div><br></div><div><div>$c->model('DB::Tabela)->search(undef, {</div><div>                                                        select => ['randseq((?)::integer) as randseq ', ] ,</div>











<div>                                                    }, );</div></div><div><br></div><div><br></div><div>Não consegui descobrir em que lugar da estrutura eu preciso passar as 'bind variables' para o DBIx::Class. Alguém poderia me ajudar, por gentileza?</div>











<div><br></div><div><br></div><div><br></div><div>Obrigado!<span><font color="#888888"><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Software Engineer<br><a href="tel:%2811%29982907780" value="+5511982907780" target="_blank">(11)982907780</a>
</font></span></div></div>
</blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Software Engineer<br><a href="tel:%2811%29982907780" value="+5511982907780" target="_blank">(11)982907780</a>
</div></div></div>
<br></div></div>=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></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div><div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div>









<div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div></div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>










</font></span></div></div>
<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></blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Software Engineer<br>(11)982907780
</div></div></div>
<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></blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div><div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div>





<div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div></div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>






</div></div></div>
<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></blockquote></div></div></div><br></div>
<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><br><br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div><div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div>

<div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div></div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>


</div>