Tema: sql colgado
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2010, 07:40
maurimono
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 7 meses
Puntos: 0
sql colgado

Hola.

Este problema lo he planteado antes. se trata de un aplicacion cgi que ejecuta recurrentemente una consulta sql, dicha consulta esta en un metodo de una clase. leyendo por ahi vi un caso en que se estaba tratando de insertar muchos registros en una BBDD, pero que solo ingresaba una pequeña parte
http://www.forosdelweb.com/f12/inser...-mysql-512695/ aqui se le recomienda usar la funcion finish(). que trate de usar pero no logro superar el problema.
aqui va el codigo del metodo del que hablo.



Código HTML:
sub preparar
{
     my $self = shift;
     my $tipo = shift;
     my $visualizacion = shift;

#    $tipo = ($tipo) ?$tipo : 1;
    $tipo ||= 1;

    print start_table({-width=>'100%'}) if (! $visualizacion);
	 
    my $personal = $dbh->selectall_arrayref("Select a.id From Personas2 a Where exists (select 1 from atributos b where a.id = b.cod_atributo and b.ind_proc_docto = $self->{ind_proc_doc} And b.id_tipo_atributo = $tipo and b.id_dueno = $self->{dueno})", { Slice => {} } ) || die $self->error($self->{dbh}->errstr);
	# Personas2 es una vista de una tabla en otra BBDD, pero en el mismo servidor.

    my $pers_resp=0;
    my @array;
	foreach my $pers (@$personal){
        my $emp = new SBMP::Empleado($pers->{id});
        if ($visualizacion){
            push @array,&fixcase($emp->nombre);
        } else {
            print Tr(
                        td({-class=>"bordercell", -width=>'100%'},&fixcase($emp->nombre))
                    )."\n";
            $pers_resp++;
        }
    }
     if ($visualizacion){
        return join " ; ", @array;
    } else {
        print end_table();
        print hidden('tot_pers',$pers_resp);
    }
                #aqui agregue esta sentencia, pero sin resultados
	$personal->finish;

}
Adicionalmente hay que agregar que se trata de SqlServer 7.0.... tambien por ahi he investigado que esta BBDD va acumulando las sesiones y en este caso como se trata de un metodo que es llamado persistentemente, deberia ser el problema. Sin embargo haciendo pruebas, no tengo claro si el problema pasa por sqlserver o por perl.


Muchas Gracias
__________________
Dios es mas grande que tu problema :-)