[Cascavel-pm] Digest Cascavel-pm, volume 176, assunto 3

Márcio - UOL marcio425 em uol.com.br
Quinta Dezembro 14 08:35:17 PST 2006


Olá a todos. Meu nome é Márcio, sou da área de conteúdo do site 
Superdownloads e informados com muito prazer que estamos divulgando em nossa 
home o evento Open Source Day.

Deixo aqui um canal aberto para toda e qualquer sugestão que contribui para 
nossa área de programas para desenvolvimento. Há muito tempo estamos nos 
esforçando para divulgar softwares que realmente facilitem a vida daqueles 
que trabalham diariamente com programação, porém, em reunião, decidimos que 
o usuário mais do que ninguém sabem de suas necessidades diárias.

Sendo assim, gostaria muito que todos os profissionais nos ajudassem a 
melhorar o conteúdo indicando programas que contribuam para a difusão do 
conhecimento.


Quem tiver alguma dica de software, queira divulgar um tutorial de sua 
autoria ou eventos e palestras podem encaminhar email para 
marcio em superdownloads.com.br ou add no messenger o contato 
marcio425 em superdownloads.com.br.

Estamos aberto a toda e qualquer sugestão e agradecemos a ajuda da 
comunidade.


Márcio Lima
www.superdownloads.com.br





----- Original Message ----- 
From: <cascavel-pm-request em pm.org>
To: <cascavel-pm em pm.org>
Sent: Wednesday, December 13, 2006 4:20 PM
Subject: Digest Cascavel-pm, volume 176, assunto 3


Enviar submissões para a lista de discussão Cascavel-pm para
cascavel-pm em pm.org

Para se cadastrar ou descadastrar via WWW, visite o endereço
http://mail.pm.org/mailman/listinfo/cascavel-pm
ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
corpo da mensagem para
cascavel-pm-request em pm.org

Você poderá entrar em contato com a pessoa que gerencia a lista pelo
endereço
cascavel-pm-owner em pm.org

Quando responder, por favor edite sua linha Assunto assim ela será
mais específica que "Re: Contents of Cascavel-pm digest..."


Tópicos de Hoje:

   1. [OT] Open Source Day (Solli Honorio)
   2. Re: Verificar se veio dados do banco (Ricardo Portilho Proni)
   3. Re: Verificar se veio dados do banco (Gilmar Santos Jr)
   4. Re: Verificar se veio dados do banco (Gabriel Vieira)
   5. Re: Verificar se veio dados do banco (Eden Cardim)
   6. Re: Verificar se veio dados do banco (Gilmar Santos Jr)
   7. Re: Verificar se veio dados do banco (Eden Cardim)


----------------------------------------------------------------------

Message: 1
Date: Tue, 12 Dec 2006 20:51:15 -0200
From: "Solli Honorio" <shonorio em gmail.com>
Subject: [Cascavel-pm] [OT] Open Source Day
To: saopaulo-pm em mail.pm.org, "Cascavel Perl Mongers"
<cascavel-pm em pm.org>
Message-ID:
<12d1f4ee0612121451h1bab7ab7qf7028197607bccdb em mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Pessoal,

No dia 16 de Dezembro, sábado próximo, será realizado o Open Source Day com
a participação do São Paulo Perl Mongers no mini-curso de Perl.

Informações sobre o local e horário estão disponível no banner do evento no
site do www.perl.org.br.

Fica aqui o meu convite a todos.

Abraços,

Solli M. Honório
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://mail.pm.org/pipermail/cascavel-pm/attachments/20061212/eed98952/attachment-0001.html

------------------------------

Message: 2
Date: Wed, 13 Dec 2006 16:09:32 -0300
From: Ricardo Portilho Proni <ricardoportilho em terra.com.br>
Subject: Re: [Cascavel-pm] Verificar se veio dados do banco
To: Cascavel Perl Mongers <cascavel-pm em pm.org>
Cc: Lista-PortoAlegre <portoalegre-pm em pm.org>
Message-ID: <45804FEC.8050902 em terra.com.br>
Content-Type: text/plain; charset="iso-8859-1"

Não sei se existe uma forma melhor. Deve existir.

$sql="Select * from teste where datahora="2006-12-11 00";
my $ind_dados = 0;
$sth = $dbh->prepare($sql) || die $DBI::errstr;
$sth->execute || die $DBI::errstr;

while (my $ref = $sth->fetchrow_hashref()) {$ind_dados++;}
if ($ind_dados > 0) {Veio dados do banco !\n;}

$sth->finish();

Ricardo Portilho Proni
Oracle Database 10g Administrator Certified Associate
Microsoft Certified Professional
Nerv Informática Ltda.



Patty Silva escreveu:
> Ola pessoal, como faco para verificar se veio dados do banco ou nao?
>
> faco assim:
>
> $sql="Select * from teste where datahora="2006-12-11 00";
>
> $sth = $dbh->prepare($sql) || die $DBI::errstr;
> $sth->execute || die $DBI::errstr;
> $sth->finish();
>
>
>
>
> Quero verificar se a consulta me retornou resultado ou nao..
>
> Alguem pde me ajudar?/
>
> Obrigada
>
> :D
>
> ------------------------------------------------------------------------
> Yahoo! Search
> Música para ver e ouvir: You're Beautiful, do James Blunt
> <http://us.rd.yahoo.com/mail/br/tagline/search/video/*http://br.search.yahoo.com/search/video?p=james+blunt&ei=UTF-8&cv=g&x=wrt&vm=r&fr=intl-mail-br-b>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.432 / Virus Database: 268.15.9/573 - Release Date: 12/5/2006 
> 4:07 PM
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://mail.pm.org/pipermail/cascavel-pm/attachments/20061213/72c550cc/attachment-0001.html

------------------------------

Message: 3
Date: Wed, 13 Dec 2006 15:19:16 -0300
From: Gilmar Santos Jr <gilmarjr em dcc.ufba.br>
Subject: Re: [Cascavel-pm] Verificar se veio dados do banco
To: Cascavel Perl Mongers <cascavel-pm em pm.org>
Message-ID: <45804424.9010800 em dcc.ufba.br>
Content-Type: text/plain; charset=ISO-8859-1

Se o objetivo for simplesmente saber se veio ou não (e opcionalmente
quantos) muda-se a query para "select count(*) from ...", isso sempre
retorna 1 resultado, e o resultado diz quantas linhas a query retornaria...

Boa sorte,
Gilmar
- Salvador Perl Mongers

Patty Silva escreveu:
> Ola pessoal, como faco para verificar se veio dados do banco ou nao?
>
> faco assim:
>
> $sql="Select * from teste where datahora="2006-12-11 00";
>
> $sth = $dbh->prepare($sql) || die $DBI::errstr;
> $sth->execute || die $DBI::errstr;
> $sth->finish();
>
>
>
>
> Quero verificar se a consulta me retornou resultado ou nao..
>
> Alguem pde me ajudar?/
>
> Obrigada
>
> :D
>
> ------------------------------------------------------------------------
> Yahoo! Search
> Música para ver e ouvir: You're Beautiful, do James Blunt
> <http://us.rd.yahoo.com/mail/br/tagline/search/video/*http://br.search.yahoo.com/search/video?p=james+blunt&ei=UTF-8&cv=g&x=wrt&vm=r&fr=intl-mail-br-b>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm



------------------------------

Message: 4
Date: Wed, 13 Dec 2006 15:30:21 -0300
From: "Gabriel Vieira" <gabriel.vieira em gmail.com>
Subject: Re: [Cascavel-pm] Verificar se veio dados do banco
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Message-ID:
<83d8367f0612131030r6d1bcafdw498eeead1bbf148 em mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

------------------>8--------------------------
my $datahora = "2006-12-11 00";
my $sth = $dbh->prepare("SELECT * FROM teste WHERE datahora=?") or die
$DBI::errstr;
$sth->execute($datahora);
print "Existem dados" if $sth->rows;
$sth->finish();
------------------8<--------------------------

Creio que satisfaça :)

On 12/13/06, Gilmar Santos Jr <gilmarjr em dcc.ufba.br> wrote:
>
> Se o objetivo for simplesmente saber se veio ou não (e opcionalmente
> quantos) muda-se a query para "select count(*) from ...", isso sempre
> retorna 1 resultado, e o resultado diz quantas linhas a query
> retornaria...
>
> Boa sorte,
> Gilmar
> - Salvador Perl Mongers
>
> Patty Silva escreveu:
> > Ola pessoal, como faco para verificar se veio dados do banco ou nao?
> >
> > faco assim:
> >
> > $sql="Select * from teste where datahora="2006-12-11 00";
> >
> > $sth = $dbh->prepare($sql) || die $DBI::errstr;
> > $sth->execute || die $DBI::errstr;
> > $sth->finish();
> >
> >
> >
> >
> > Quero verificar se a consulta me retornou resultado ou nao..
> >
> > Alguem pde me ajudar?/
> >
> > Obrigada
> >
> > :D
> >
> > ------------------------------------------------------------------------
> > Yahoo! Search
> > Música para ver e ouvir: You're Beautiful, do James Blunt
> > <
> http://us.rd.yahoo.com/mail/br/tagline/search/video/*http://br.search.yahoo.com/search/video?p=james+blunt&ei=UTF-8&cv=g&x=wrt&vm=r&fr=intl-mail-br-b
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Gabriel Vieira
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: 
http://mail.pm.org/pipermail/cascavel-pm/attachments/20061213/7635acd9/attachment-0001.html

------------------------------

Message: 5
Date: Wed, 13 Dec 2006 15:35:22 -0300
From: "Eden Cardim" <edencardim em gmail.com>
Subject: Re: [Cascavel-pm] Verificar se veio dados do banco
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Message-ID:
<3de55ead0612131035jc61f425ke71a18a74c8216b8 em mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

On 12/13/06, Gilmar Santos Jr <gilmarjr em dcc.ufba.br> wrote:
> Se o objetivo for simplesmente saber se veio ou não (e opcionalmente
> quantos) muda-se a query para "select count(*) from ...", isso sempre
> retorna 1 resultado, e o resultado diz quantas linhas a query 
> retornaria...

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

<code>
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...
}

foreach $row ($schema->resultset('Teste')) { #select * from...
    #fazer algo com a $row atual
}
</code>

-- 
Eden Cardim
Instituto Baiano de Biotecnologia
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
Laboratório de Bioinformática
--
"you seem to think that 'close enough' is close enough...
please learn to be 'literal' around programming."
merlyn - on irc.freenode.net#perl


------------------------------

Message: 6
Date: Wed, 13 Dec 2006 15:48:44 -0300
From: Gilmar Santos Jr <gilmarjr em dcc.ufba.br>
Subject: Re: [Cascavel-pm] Verificar se veio dados do banco
To: Cascavel Perl Mongers <cascavel-pm em pm.org>
Message-ID: <45804B0C.4060906 em dcc.ufba.br>
Content-Type: text/plain; charset=ISO-8859-1

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


------------------------------

Message: 7
Date: Wed, 13 Dec 2006 16:19:57 -0300
From: "Eden Cardim" <edencardim em gmail.com>
Subject: Re: [Cascavel-pm] Verificar se veio dados do banco
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Message-ID:
<3de55ead0612131119w6768afc5m505166739684b07 em mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

On 12/13/06, Gilmar Santos Jr <gilmarjr em dcc.ufba.br> wrote:
> 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. 
> :)

O DBIx::Class faz lazy population por padrão. Para cada row que você
solicita, é feita uma consulta ao banco e os resultados são guardados
num cache, para que acessos subsequentes não gerem novas consultas (a
não ser que você queira isso, para atualizar o cache, por exemplo).
Isso é o ideal se são selecionadas rows individuais aleatoriamente.
Se você quiser, pode popular o resultset com uma única consulta, o que
é ideal se você sabe, com antecedência, de que vai precisar acessar
todas as rows, isso evita o overhead de executar uma consulta por
acesso.
Existe também uma opção intermediária que são as consultas paginadas.
Sumarizando, você indica quantas rows quer carregar no cache por
consulta e qual a página de resultados quer obter na consulta atual.

A documentação, que, por sinal, é muito boa, explica tudo com mais detalhes

>
> 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 :)

Sim, você está perfeitamente correto. O objeto ResultSet é
sobrecarregado para stringificar para o resultado de um "select
count...", o uso do if nesse caso foi apenas para ilustrar a
flexibilidade do DBIC. ;)

-- 
Eden Cardim
Instituto Baiano de Biotecnologia
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
Laboratório de Bioinformática
--
"you seem to think that 'close enough' is close enough...
please learn to be 'literal' around programming."
merlyn - on irc.freenode.net#perl


------------------------------

_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm

Fim da Digest Cascavel-pm, volume 176, assunto 3
************************************************


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.18/584 - Release Date: 12/12/2006




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