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
