[Cascavel-pm] Dúvida sobre BDI::disconnect

Solli Moreira Honorio shonorio em terra.com.br
Quarta Outubro 26 12:53:34 PDT 2005


Pessoal,

Quando eu executo o código abaixo, recebo o warnnig 'DBI::db=HASH(0x226f9c4)->disconnect invalidates 1 active
statement handle (either destroy statement handles or call finish on them before disconnecting) at
AVUpdate/Module/Helpesk/Spasa.pm line 90.', onde line 90 é a linha do disconnect.

<code>
sub verificar_chamado {
    my $self    = shift;
    my $chamado = shift;

    my $dbcon = DBI->connect ( $self->{dbiconnetion}, $self->{dbiuser}, $self->{dbipassword} )
       or die qq{Can't connect to database: $DBI::errstr};
       
    my $sth = $dbcon->prepare( qq{SELECT cod_status FROM ordem_servico WHERE cod_ordem_servico=$chamado} );
    $sth->execute();

    my $status = $sth->fetchrow_array();

    $dbcon->disconnect
	or warn qq{Disconnection failed: $DBI::errstr};
	
    return $status;
}
</code>
Como eu tenho o hábito de fechar as conexões de banco de dados, fiquei confuso com esta mensagem. Não preciso
explicitar a desconexão neste caso ?

Posso simplesmente fazer algo como :
<code>
sub verificar_chamado {
    my $self    = shift;
    my $chamado = shift;

    my $dbcon = DBI->connect ( $self->{dbiconnetion}, $self->{dbiuser}, $self->{dbipassword} )
       or die qq{Can't connect to database: $DBI::errstr};
       
    my $sth = $dbcon->prepare( qq{SELECT cod_status FROM ordem_servico WHERE cod_ordem_servico=$chamado} );
    $sth->execute();

    return $sth->fetchrow_array();
}
</code>
sem problema ? ainda mais para um sistema que rodará como daemon ?

Thanks,

Solli



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