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