[Cascavel-pm] Verificar se veio dados do banco

Gilmar Santos Jr gilmarjr em dcc.ufba.br
Quarta Dezembro 13 10:48:44 PST 2006


Eden Cardim escreveu:
> Precisamente, e se usar DBIx::Class, a consulta é trocada
> automaticamente, de acordo com o contexto.
>   

Uau!

DBIx::Clas+++++++ :)

Não tenho certeza, mas acho que $sth->rows executa a query normalmente,
armazena os resultados e retorna quantos tem. No caso da DBIx::Class (ou
se for feito um select count(*) na mão) não há gasto de memória extra
armazenando-se o resultado.. alguém sabe mais sobre isso? Estou chutando. :)

Nesse código:

if($result = $schema->resultset('Teste')) { #select count...
    $row = $result->next;
    #fazer algo com a primeira $row
    $row = $result->next;
    #fazer algo com a segunda $row
    #etc...
}



No if se faz um select. Mas para o primeiro next, pelo menos, deve haver
outro. De repente nesse contexto seria interessante fazer logo a query
no if, pois se não retornar resultados não há diferença entre uma forma
e outra. Já se retornar fazendo um "select count" obriga a fazer um
select "normal" depois, ou seja, há 2 consultas ao invés de uma...

A vantagem que vejo nesse método é se a única informação necessária é de
fato quantos elementos são retornados e não os elementos em si...

Me corrijam se estiver falando besteira :)

[]'s
Gilmar


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