Foros del Web » Programando para Internet » ASPX (.net) »

valor de tiempo de espera caducado???

Estas en el tema de valor de tiempo de espera caducado??? en el foro de ASPX (.net) en Foros del Web. Hola a todos!!!!!! Tengo un pequeño problema que sinceramente no he sabido a que se debe.... Es lo siguiente: Yo en mi aplicación tengo que ...
  #1 (permalink)  
Antiguo 20/12/2006, 07:49
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta valor de tiempo de espera caducado???

Hola a todos!!!!!!

Tengo un pequeño problema que sinceramente no he sabido a que se debe....
Es lo siguiente:
Yo en mi aplicación tengo que hacer unas consultas a la base de datos que estoy haciendo de la siguiente manera:

Código:
DataSet dsTodo = new DataSet();
dsTodo = sesion.obtenerDataSet("spObtenerBusquedaLibrosTCampos", parametroBuscar);
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro2));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro4));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro5));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro7));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro9));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro10));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro12));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaOMaterialesTCampos", parametro13));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaTesisTCampos", parametroBuscar));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaPeliculasTCampos", parametroBuscar));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaArchivosTCampos", parametroBuscar));
dsTodo.Merge(sesion.obtenerDataSet("spObtenerBusquedaSeriadasTCampos", parametroBuscar));
return dsTodo;

Cómo pueden ver son varias consultas que llevo a un mismo dataset, la cosa es que a cada consulta en el administrador corporativo de SQlServer 2000 les agrego una tabla por la cual también necesito hacer la consulta y en el Sql y en el analizador de consultas me funciona la consulta, es decir me muestra lo que me debe mostrar. Una de las consultas es cómo la siguiente:

Código:
CREATE PROCEDURE dbo.spObtenerBusquedaOMaterialesTCampos
	@CamposBuscar varchar(250),
	@IDTipoMaterial int
AS
DECLARE @NombreAutor VARCHAR(1000)
DECLARE @NAutores varchar(250)
DECLARE @IDLibro int
DECLARE @IDLibro2 int
DECLARE @NIDLibro int
DECLARE @Clasif varchar(20)
DECLARE @Clasif2 VARCHAR(20)
DECLARE @IDTMat int
DECLARE @IDTMat2 int
DECLARE @LibAnt INT
DECLARE @LibSig INT
DECLARE @Titulo VARCHAR(250)
DECLARE @Titulo2 VARCHAR(250)
SET @NombreAutor = ''
SET @NAutores = ''
SET @Clasif2 = ''
set @IDLibro2 = 0
SET @IDTMat2 = 0
CREATE TABLE #LibAut (IDLibro INT, Titulo VARCHAR(250), Autores VARCHAR(2000), Clasificacion VARCHAR(20), IDTipoMaterial INT)
DECLARE Autores_Cursor CURSOR FOR 
SELECT TOP 300 dbo.OtrosMateriales.IDMaterial, dbo.OtrosMateriales.Titulo, dbo.Autores.Nombre + ' ' + dbo.Autores.Apellidos AS Autor, dbo.OtrosMateriales.Clasificacion, dbo.OtrosMateriales.IDTipoMaterial
FROM Materias RIGHT OUTER JOIN dbo.OtrosMaterialesMaterias ON dbo.Materias.IDMateria = dbo.OtrosMaterialesMaterias.IDMateria RIGHT OUTER JOIN dbo.OtrosMateriales ON dbo.OtrosMaterialesMaterias.IDMaterial = dbo.OtrosMateriales.IDMaterial LEFT OUTER JOIN  dbo.OtrosMaterialesAutores ON dbo.OtrosMateriales.IDMaterial = dbo.OtrosMaterialesAutores.IDMaterial LEFT OUTER JOIN dbo.Autores ON dbo.OtrosMaterialesAutores.IDAutor = dbo.Autores.IDAutor
WHERE (dbo.OtrosMateriales.IDMaterial IN (SELECT OtrosMateriales.IDMaterial FROM OtrosMateriales LEFT OUTER JOIN Ejemplares ON Ejemplares.IDMaterial = OtrosMateriales.IDMaterial LEFT OUTER JOIN OtrosMaterialesAutores ON OtrosMateriales.IDMaterial = OtrosMaterialesAutores.IDMaterial LEFT OUTER JOIN   Autores ON OtrosMaterialesAutores.IDAutor = Autores.IDAutor WHERE (Ejemplares.CodigoAcceso = @CamposBuscar OR OtrosMateriales.Titulo LIKE '%' + @CamposBuscar + '%'  OR Autores.Nombre LIKE '%' + @CamposBuscar + '%' OR Autores.Apellidos LIKE '%' + @CamposBuscar + '%' OR OtrosMateriales.Clasificacion LIKE @CamposBuscar + '%' OR (Autores.Nombre + ' ' + Autores.Apellidos) LIKE '%' + @CamposBuscar + '%' OR Materias.Materia LIKE '%' + @CamposBuscar + '%') AND  OtrosMateriales.IDTipoMaterial = @IDTipoMaterial AND OtrosMateriales.Titulo IS NOT NULL GROUP BY 	OtrosMateriales.IDMaterial))
OPEN Autores_Cursor
FETCH NEXT FROM Autores_Cursor INTO @IDLibro,@Titulo,@NombreAutor, @Clasif,  @IDTMat
	SET @LibAnt = @IDLibro
	SET @LibSig = @IDLibro
	WHILE	@@FETCH_STATUS = 0
	BEGIN
   		IF	@LibAnt = @LibSig AND @NAutores <> ''
   		BEGIN
			SET @NAutores = @NAutores +   ', '
   		END
   		IF	@LibAnt = @LibSig
   		BEGIN
			SET @NAutores = @NAutores +  @NombreAutor
			SET @LibAnt = @LibSig        
			SET @IDLibro2 = @IDLibro
			SET @Titulo2 =  @Titulo
			SET @Clasif2 =  @Clasif
			SET @IDTMat2 = @IDTMat
   		END
   		ELSE
   		BEGIN
			INSERT INTO #LibAut (IDLibro, Titulo, Autores, Clasificacion, 		IDTipoMaterial)
			Select	@IDLibro2,@Titulo2 ,@NAutores, @Clasif2, @IDTMat2
			SET @NAutores = ''
    			SET @NAutores = @NombreAutor	
			SET @LibAnt = @LibSig
			SET @IDLibro2 = @IDLibro
			SET @Titulo2 =  @Titulo
			SET @Clasif2 =  @Clasif
			SET @IDTMat2 = @IDTMat
   		END
FETCH NEXT FROM Autores_Cursor INTO @IDLibro, @Titulo, @NombreAutor,  @Clasif, @IDTMat
   		SET @LibSig = @IDLibro
	END
CLOSE Autores_Cursor
DEALLOCATE Autores_Cursor
INSERT INTO	#LibAut (IDLibro, Titulo, Autores, Clasificacion, IDTipoMaterial)
Select	@IDLibro2,@Titulo2 ,@NAutores,@Clasif2, @IDTMat2 
delete from	#LibAut where Titulo is null or Titulo = ''
select	IDLibro as IDMaterial,Titulo, Autores as Nombre, Clasificacion, IDTipoMaterial   from 	#LibAut
--DROP TABLE #LibAut
GO

Mi problema comienza cuando ejecuto la aplicación porque la ejecución funciona normalmente toda a excepción de las consultas porque cuando las voy a realizar me sale el siguiente error:

"Valor de tiempo de espera caducado. El período de tiempo de espera caducó antes de completar la operación o el servidor no responde.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Data.SqlClient.SqlException: Valor de tiempo de espera caducado. El período de tiempo de espera caducó antes de completar la operación o el servidor no responde.

Error de código fuente:


Línea 83: SqlDataAdapter ObjDataAdapter=new SqlDataAdapter();
Línea 84: ObjDataAdapter.SelectCommand=objcommand;
Línea 85: ObjDataAdapter.Fill(dsGeneral);
Línea 86: objConnection.Close();
Línea 87:


Archivo de origen: c:\inetpub\wwwroot\sabio\libreriaclasessabio\sql.c s Línea: 85"


Aqui es donde yo no entiendo el porque de ese error si las consultas me funcionan en el Sql Server y el analizador de consultas, he intentado muchas cosas pero nada me funciona y me sigue saliendo el error, es más en el código llega a la primera consulta y cuando va a llenar el dataset es cuando me sale el error.

A quien me pueda a yudar a resolver este gran problema se lo agradezco de antemano.
__________________
Kelly Johana:si:
  #2 (permalink)  
Antiguo 20/12/2006, 11:54
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: valor de tiempo de espera caducado???

Tiempo de espera caducado, que problema, parece que no pueden hacer las cosas mas eficientes los desarrolladores de la clase de SQLCLIENT, pero bueno, que mas, aca en estos rumbos teniamos el mismo problema al momento de seleccionar registros de tan solo una tabla, la cual contenia alrededor de unos 500000 mas o menos, entonces lo que hicimos fue indizar la(s) tabla(s) ya que el proceso tardaba demasiado, cuando colocamos los indices, la comunicacion entre la pagina web y el SQL fue optima y hasta el momento no ha causado mas problemas, espero te funcione el dato. saludos
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:55.