Una pregunta, estas seguro que resuelve la ip de la base de datos desde el 
Server?

 

Javier

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Pepe Ballaga
Sent: Tuesday, October 21, 2008 4:26 PM
To: [email protected]
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