"DBIx::Class é pra quem joga de mono black devotion"
2014-06-27 17:24 GMT-03:00 Renato Santos <renato.c...@gmail.com>: > ah! > > Funciona tambem se usar arrayref como bind, no lugar do hash. > > uso esse codigo aqui em produção, ai fiquei 'curioso'! > '+select' => [ > \[ > '(SELECT x.period_begin FROM f_extract_period_edge(?, > me.valid_from) x)', > [ plain_value => $options{group_by} ] > ] > ], > '+as' => ['group_from'] > > > > 2014-06-27 15:51 GMT-03:00 Andre Carneiro <andregarciacarne...@gmail.com>: > > Valeu Renato! >> >> 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: >> >> >> >> my $row = $c->model('DB::Tabela')->search( >> undef, >> { >> '+select' => [ >> \['randseq((?)::integer)', 123 ], >> ] , >> '+as' => ['randseq'] >> }, >> ); >> >> 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'. >> >> Mas ajudou bastante! Obrigado! >> >> >> >> >> >> 2014-06-27 12:59 GMT-03:00 Renato Santos <renato.c...@gmail.com>: >> >> Faça o bind local: >>> >>> >>> my $row = $c->model('DB::Tabela')->search( >>> undef, >>> { >>> '+select' => [ >>> \['randseq((?)::integer)', { randseq_param => 123 }], >>> ] , >>> '+as' => ['randseq'] >>> }, >>> )->next; >>> >>> # $row->get_column('randseq'); >>> >>> >>> http://search.cpan.org/~ribasushi/SQL-Abstract-1.78/lib/SQL/Abstract.pm#Literal_SQL_with_placeholders_and_bind_values_(subqueries) >>> >>> >>> >>> >>> 2014-06-27 12:47 GMT-03:00 Andre Carneiro <andregarciacarne...@gmail.com >>> >: >>> >>>> Opa, já descobri! Foi mal! >>>> >>>> Era só passar 'bind', assim: >>>> >>>> $c->model('DB::Tabela)->search(undef, { >>>> select => >>>> ['randseq((?)::integer) ', ] , >>>> as => >>>> [qw/randseq/], >>>> bind => [12345], >>>> }, ); >>>> >>>> O problema agora é que o DBIx::Class me solta o seguinte erro: >>>> >>>> schema "me" does not exist [for Statement "SELECT >>>> me.randseq((?)::integer) FROM Tabela me" with ParamValues: 1='12345'] >>>> >>>> >>>> Aparentemente, DBIx::Class não reconhece o apelido que ele mesmo deu >>>> pra tabela... :-p >>>> >>>> >>>> Alguma idéia? >>>> >>>> >>>> 2014-06-27 12:38 GMT-03:00 Andre Carneiro < >>>> andregarciacarne...@gmail.com>: >>>> >>>> Boa tarde! >>>>> >>>>> Alguém pode me dizer como eu envio as bind variables para uma >>>>> equivalente a query abaixo no DBIx::Class, por gentileza? >>>>> >>>>> >>>>> SELECT randseq((?)::integer) as randseq FROM Tabela; >>>>> >>>>> >>>>> Minha tentativa no DBIx::Class >>>>> >>>>> >>>>> $c->model('DB::Tabela)->search(undef, { >>>>> select => >>>>> ['randseq((?)::integer) as randseq ', ] , >>>>> }, ); >>>>> >>>>> >>>>> 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? >>>>> >>>>> >>>>> >>>>> Obrigado! >>>>> >>>>> -- >>>>> André Garcia Carneiro >>>>> Software Engineer >>>>> (11)982907780 >>>>> >>>> >>>> >>>> >>>> -- >>>> André Garcia Carneiro >>>> Software Engineer >>>> (11)982907780 >>>> >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>>> >>>> >>> >>> >>> -- >>> Saravá, >>> Renato CRON >>> http://www.renatocron.com/blog/ >>> @renato_cron <http://twitter.com/#!/renato_cron> >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >>> >> >> >> -- >> André Garcia Carneiro >> Software Engineer >> (11)982907780 >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron <http://twitter.com/#!/renato_cron> > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer