[SP-pm] Res: ORMs

André Walker andre at andrewalker.net
Mon Sep 29 12:41:16 PDT 2008


É verdade, eu confesso, não fui claro nem objetivo :)
O que eu quis dizer é o seguinte: eu fiz uma function (function, sp,
tudo mesma coisa =P), e queria executá-la pelo DBIx::Class. Depois de
pesquisar bastante, vi que o melhor jeito era usar estas instruções: 
http://search.cpan.org/~ash/DBIx-Class-0.08010/lib/DBIx/Class/Manual/Cookbook.pod#Arbitrary_SQL_through_a_custom_ResultSource

Meu código ficou assim:
my $source = __PACKAGE__->result_source_instance();
my $new_source = $source->new( $source );
$new_source->source_name('UltimasFotos');
$new_source->name( \<<SQL );
(
    SELECT * FROM ultimasfotos( ? )
)
SQL

BD->register_source('UltimasFotos' => $new_source);

ultimasfotos é uma function que retorna as últimas fotos dos amigos de
um determinado usuário. Aí eu executo assim:
$schema->resultset("UltimasFotos")->search({}, {bind => $id_usuario});

Complexo não ficou, mas concordam comigo que não é uma coisa muito
natural? Talvez não seja o melhor jeito de se fazer isso, mas olhando a
linha de código acima, se eu não soubesse DBIx::Class, eu nunca
imaginaria que ela está executando uma function. Sei lá, por enquanto
ainda uso DBIx::Class, ficou bem mais simples meu código de uma maneira
geral. Só fiquei com um pé atrás depois de conversar com o Fetter, e não
gostei muito da solução da function.

Cheers!

PS: de um jeito ou de outro, eu estou só aprendendo. Sou estudante de
informática, ainda não trabalho. Não esperem que eu saiba muito de
DBIx::Class ou mesmo usar o DBI puro.

PPS: O código que eu mostrei refere-se a um projeto final de curso no
Cotuca (Colégio Técnico da Unicamp), um site usando cgiapp, dbic e tt2
pra compartilhamento de fotos, como flickr, photobucket. O site é
www.pic-load.com, mas ainda não está terminado, e está bem bugado =]

On Mon, 2008-09-29 at 10:36 -0300, Wallace Reis wrote:
> On Mon, Sep 29, 2008 at 9:49 AM, Eden Cardim <edencardim em gmail.com> wrote:
> > 2008/9/29 Wallace Reis <reis.wallace em gmail.com>:
> >> Não estou certo de que ele se referiu ao acesso às SPs, se assim for,
> >> não é necessário o uso do $dbh para isto
> >
> > Bom, eu assumi que ele queria usar uma stored procedure ou função pra
> > retornar um conjunto inteiro de dados.
> 
> E eu não. Na teoria (pq alguns SGBDs não separam elas), functions são
> diferentes de stored procedures, estas não retornam dados de
> consultas, elas podem criar uma tabela e popular esta.
> Enfim,
> 
> wreis-- & eden-- #por fazer suposições
> 
> andre-- # por não ser claro e objetivo
> 
> -- 
> wallace reis/wreis
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm



More information about the SaoPaulo-pm mailing list