[SP-pm] DBIx::Class + executando funções no SELECT

Renato Santos renato.cron at gmail.com
Fri Jun 27 08:59:02 PDT 2014


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 <andregarciacarneiro at 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 <andregarciacarneiro at 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 at 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>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20140627/7e386341/attachment-0001.html>


More information about the SaoPaulo-pm mailing list