El connectionTimeout es el lapso que espera para conectarse al motor

el CommandTimeOut es el tiempo que le das para que ejecute el comando dentro de 
la base una vez que ya estás conectado
y debieras setear comando.CommandTimeOut = n


----- Original Message ----- 
From: "Pepe Ballaga" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, October 21, 2008 4:26 PM
Subject: [puntonet] duda con el timeout al ejecutar un procedimiento almacenado


Holaaa pues resulta que tengo este procedimiento almacenado y me da Timeout 
cuando lo mando a ajecutar desde la página aspx. sin embargo si lo corro 
directamente; pues lo hace muy bian. ¿alguna ayuda con esto?. ya probé en el 
web 
config a ponerle al conectiontimeout=0 o =300 y me sigue dando lo mismo. Muchas 
Gracias

PEPE

Timeout expired.  The timeout period elapsed prior to completion of the 
operation or the server is not responding.

 SqlConnection conn = new SqlConnection(Base.SelectedValue.ToUpper().Trim() == 
"TURBINA" ? 
System.Configuration.ConfigurationManager.ConnectionStrings["turbina"].ConnectionString.ToString()
 
: 
System.Configuration.ConfigurationManager.ConnectionStrings["caldera"].ConnectionString.ToString());
        SqlCommand comando = new SqlCommand();
        comando.Connection = conn;
        //conn.ConnectionTimeout = 0;
        comando.CommandText = "listar_variables";
        comando.CommandType = CommandType.StoredProcedure;
        comando.Parameters.Clear();
        comando.Parameters.Add(new SqlParameter("@tiempo", 
fechador1.Fecha_seleccionada));
        comando.Parameters.Add(new SqlParameter("usuario", "PEPE" ));
        comando.Parameters.Add(new 
SqlParameter("@intervalo",Convert.ToInt32(horas.Text)));
        conn.Open();
        //comando.Connection.Open();
        comando.ExecuteNonQuery();
        conn.Close();



el procedimiento alamcenado esta un poquito largo; pero es este:




ALTER PROCEDURE listar_variables @tiempo datetime, @usuario nvarchar(50), 
@intervalo smallint


AS
set xact_abort on
begin transaction general
declare @nombretabla as nvarchar(50)
declare @variable as nvarchar(50)
declare @sql as nvarchar(4000)
declare @vez as smallint



set @vez=0
delete temporal where [EMAIL PROTECTED]
--declare tablas CURSOR FOR SELECT table_name, column_name from 
INFORMATION_SCHEMA.COLUMNS where table_name='log5sec' or table_name='log30sec' 
and table_column<>'timecol' and table_column<>'Msecol' and 
table_column<>'localcol' and table_column<>'usercol' and
declare tablas CURSOR FOR SELECT table_name, column_name from 
INFORMATION_SCHEMA.COLUMNS where (TABLE_NAME = 'log5sec' OR TABLE_NAME = 
'log30sec') AND (COLUMN_NAME NOT LIKE '%col%') order by  table_name
open tablas
FETCH NEXT FROM tablas into @nombretabla, @variable
 while @@FETCH_STATUS = 0
    begin
     declare @fechainicial as datetime
     set @fechainicial = @tiempo
     declare @fechafinal as datetime
     set @fechafinal= DATEADD (hh , @intervalo, @tiempo)

     while @fechainicial<[EMAIL PROTECTED]
      begin

        DECLARE @SQLString nvarchar(4000)
        DECLARE @ParmDefinition nvarchar(4000)
        DECLARE @valor float(24)
        set @valor=0


        SET @SQLString = 'SELECT  @valorOUT='[EMAIL PROTECTED]'  FROM '[EMAIL 
PROTECTED]' 
WHERE timecol= @tiempon' ;
        SET @ParmDefinition = '@tiempon datetime, @valorOut float(24) OUT';
        EXECUTE sp_executesql @SQLString, @ParmDefinition, 
@[EMAIL PROTECTED] , @valorOUT = @valor OUT ;
        SELECT @valor;


       if @vez=0
        set @sql='insert into temporal (tiempo, usuario, '[EMAIL PROTECTED]') 
values 
('+char(39)+cast(@fechainicial as nvarchar(50))+char(39)+', 
'+char(39)[EMAIL PROTECTED](39)+','+char(39)+cast(@valor as nvarchar(50)) 
+char(39)+')'
       else
        set @sql='update temporal set '[EMAIL 
PROTECTED]'='+char(39)+cast(@valor as 
nvarchar(50)) +char(39)+' where tiempo='+char(39)+cast(@fechainicial as 
nvarchar(50))+char(39)+' and usuario='+char(39)[EMAIL PROTECTED](39)+ ''


        execute (@sql)
       set @fechainicial= DATEADD (hh , 1, @fechainicial)
      end
    set @vez=1

    FETCH NEXT FROM tablas into @nombretabla, @variable
   end
close tablas
deallocate tablas
commit transaction general



Responder a