Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2008, 09:02
Avatar de kejos
kejos
 
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta Problemas con procedimiento

Hola a todos!
De antemano agardezco cualquier ayuda que me puedan brindar.
Resulta que yo estoy realizando el siguiente procedimiento:
Código:
CREATE TABLE  #Fechas (Fechas VARCHAR(10) NOT NULL)
 DECLARE @i INT
 DECLARE @FechaIng VARCHAR(10)
 SET @i = "0"
 WHILE @i <= 30--se calculan hasta 30 días
 BEGIN
  SET @FechaIng = CONVERT(VARCHAR(10),DATEADD(DAY,@i,GETDATE()),103)
  INSERT INTO #Fechas (Fechas)
  SELECT @FechaIng
  SET @i = @i + 1
 END
 DECLARE Fecha_Cursor CURSOR FOR
 (SELECT CONVERT(VARCHAR(10), FechaPrestamoReserva,103) AS FechaPrestamoReserva, 
  CONVERT(VARCHAR(10),FechaEntrega,103) AS FechaEntrega --EJEMPLAR RESERVADO
 FROM    Servicios
 WHERE   CodigoAcceso = "0003032" AND FechaDevolucion IS NULL AND FechaCancelacion IS NULL AND 
  FechaPrestamoReserva IS NOT NULL)
UNION
 (SELECT CONVERT(VARCHAR(10), FechaPrestamo,103) , CONVERT(VARCHAR(10), FechaEntrega,103) --EJEMPLAR PRESTADO
 FROM    Servicios
 WHERE   CodigoAcceso = "0003032" AND FechaDevolucion IS NULL AND FechaCancelacion IS NULL AND FechaPrestamo IS 
  NOT NULL )
 DECLARE @FechaPrestamoR VARCHAR(10)
 DECLARE @FechaEntre VARCHAR(10)
 OPEN Fecha_Cursor
  FETCH NEXT FROM Fecha_Cursor INTO @FechaPrestamoR, @FechaEntre
  WHILE @@FETCH_STATUS = 0
  BEGIN--Elimina los rangos de días que esta o será prestado el ejemplar
   DELETE FROM #Fechas
   WHERE   CONVERT(DATETIME,#Fechas.Fechas,103) BETWEEN CONVERT(DATETIME,@FechaPrestamoR,103) 
     AND DATEADD(DAY,-1,CONVERT(DATETIME,@FechaEntre,103))
   FETCH NEXT FROM Fecha_Cursor INTO @FechaPrestamoR, @FechaEntre 
  END
 CLOSE Fecha_Cursor
 DEALLOCATE Fecha_Cursor
 DELETE FROM  #Fechas
 WHERE   datepart(dw, Fechas) = "7" --Elimina los domingo de la fechas disponibles
 DELETE FROM  #Fechas
 WHERE   datepart(dw, Fechas) = "6" --Elimina los sábados de la fechas disponibles
 DELETE FROM    #Fechas 
 WHERE   Fechas in (SELECT Festivo
      FROM  Festivos) --Elimina los dias festivos
 SELECT  Fechas --da como resultado las fechas disponibles d reserva
 FROM  #Fechas
GO
Este procedimiento me funciona correctamente en el servidor Web pero en mi equipo al realizar una migraciónde mi aplicación a 2005 resulta que no me funciona y me saca el siguiente error:
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
The statement has been terminated.
en 3 líneas del procedimiento
Lo que es raro para mi es que anteriormente funcionaba pero ahora no quiere funcionar le cambie en los convert de 103 o 112 y el procedimiento funciona pero cuando voy a convertir los valores que me arroja a DateTime en la aplicación me dice que no reconoce el formato de fecha cómo valido.
Muchas gracias por toda la ayuda que me puedan brindar. Espero haber sido clara en la explicación de mi problema
__________________
Kelly Johana:si: