[Cascavel-pm] RE : Re: RE : Re: Módulo de controle de queries

Alesandro Zidane zidanealesx em yahoo.fr
Quarta Dezembro 26 11:58:25 PST 2007



Nilson Santos Figueiredo Junior <acid06 em gmail.com> a écrit : On Dec 26, 2007 3:17 PM, Alesandro Zidane  wrote:
> O que quero e necessito no momento é ter minhas queries organizadas num
> arquivo xml, que possam ser carregadas e utilizadas repassando apenas um id
> e possíveis parâmentros.

Se você quer isso, *e somente isso*, então o DBIx::Class não vai
servir pra muita coisa.

Para fazer o que você deseja, você tem de implementar um iterador
dentro dentro de seu módulo e, a cada chamada ao método,
"fetch_ref_array" esse iterador é avançado. Quando acabarem os
registros, você retorna uma lista vazia ou undef e o loop irá
finalizar.

Obrigado pela idéia, olha como ficou o método:
sub fetch_hashref()    {
    my $self = shift;
    return sub {
        unless($self->{_sth})    {
            $self->_sth(); # Recupera Query do xml
            $self->{_sth} = $self->{_dbh}->prepare($self->sth_qry) or die("Erro ao criar statement para query $self->{sth_id}: ".$self->{_dbh}->errstr());
            $self->{_sth}->execute()or die("erro $!");
        }
        $self->{_sth}->fetchrow_hashref();
    };
}

Era por aí que você tinha falado ?
Pelo menos já consigo acessar os dados com um simples while:

my $dbh_qry = Controle::DataBase->new('finish','221442');
my $qry_ref = $dbh_qry->fetch_hashref;
while(my $ref = &$qry_ref)    {
    print $ref->{'DADOS_FINISH'}."\n";
}

Gostaria de saber se posso melhorar.

Note que essa prática de referenciar queries por ids pode se tornar
bastante confusa depoid e talvez valesse mais à pena você fazer uma
implementação orientada a objetos - utilizando ou não um mapeador
objeto-relacional.

Não entendi muito bem quando disse uma implementação orientada objetos, estou tentando melhorar e organizar o acesso ao banco de dados do sistema, e qualquer sugestão é bem vinda. Pode me esclarecer melhor ?

Obrigado..



             
---------------------------------
 Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20071226/7bef6ca8/attachment-0001.html 


Mais detalhes sobre a lista de discussão Cascavel-pm