• Domingo 12 de Mayo de 2024, 00:28

Autor Tema:  No Mirar Un Registro  (Leído 1825 veces)

sneider

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
No Mirar Un Registro
« en: Domingo 17 de Diciembre de 2006, 16:28 »
0
Buenas tardes.Tengo un pequeño problema que no se como abordarlo. Resulta que he puesto un bucle que me vaya recorriendo mi cursor para ver si se cumple una condicion.En concreto es lo siguiente:
Tengo que controlar las fechas de inicio y fin de una reserva de un hotel.Si yo quiero actualizar la fecha de inicio de una reserva....tengo que recorrer mi cursor para ver que no hay reservas dentro de ese rango inicio y fin. Es decir, yo tengo la habitacion numero 69 en el hotel 4 con la reserva fecha inicio =16/1/2006 y fecha fin =20/1/2006.  Pues bien, a la hora de recorrer el cursor para ver que no hay reservas que se solapen en esa misma habitacion y ese mismo hotel, no se como decirle que no me mire esa misma reserva que yo estoy actualizando porque sino siempre me daria error de actualizacion( al encontrar una reserva que ya esta en ese rango de fechas). No se si me entendeis...es un poco complejo jeje.

Yo he puesto lo siguiente:



     
Código: Text
  1.  
  2. OPEN c1;
  3.         LOOP
  4.          
  5.           FETCH c1 into num,hotel,habitacion,dni,fini,ffin;
  6.          
  7.       IF (:RESERVA.fecha_inicio between fini and ffin-1) THEN
  8.             RAISE error5;
  9.       ELSE
  10.          
  11.           COMMIT_FORM;
  12.          
  13.       END IF;
  14.      
  15.      
  16.      
  17.       IF (:RESERVA.fecha_fin between fini+1 and ffin) THEN
  18.             RAISE error3;
  19.       ELSE
  20.          
  21.           COMMIT_FORM;
  22.          
  23.       END IF;
  24.      
  25.      
  26.      
  27.       exit when (c1%notfound) or (:RESERVA.num_reserva = num);
  28.       next_record;
  29.         END LOOP;
  30.         close c1;
  31.         first_record;
  32.            
  33.  
  34.      
  35.  EXCEPTION
  36.          
  37.                  
  38.                  
  39.            WHEN error3 THEN
  40.            
  41.                SET_ALERT_PROPERTY('FECHA_FIN_RANGO',ALERT_MESSAGE_TEXT,'La fecha de fin de la reserva coincide dentro del rango de una reserva con esa misma habitación y ese mismo hotel');
  42.           IF SHOW_ALERT ('FECHA_FIN_RANGO')= ALERT_BUTTON1 THEN
  43.                 RAISE FORM_TRIGGER_FAILURE;
  44.           END IF;
  45.            
  46.           WHEN error5 THEN
  47.            
  48.               SET_ALERT_PROPERTY('FECHA_INICIO_RANGO',ALERT_MESSAGE_TEXT,'La fecha de inicio de la reserva coincide dentro del rango de una reserva con esa misma habitación y ese mismo hotel');
  49.           IF SHOW_ALERT ('FECHA_INICIO_RANGO')= ALERT_BUTTON1 THEN
  50.                 RAISE FORM_TRIGGER_FAILURE;
  51.           END IF;
  52.            
  53.              
  54.              
  55.  
  56. END;
  57.  
  58.  

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: No Mirar Un Registro
« Respuesta #1 en: Lunes 18 de Diciembre de 2006, 17:15 »
0
maneja un id unico por reserva y cuando hagas el cursor le dices que traiga todas menos la actual.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

sneider

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: No Mirar Un Registro
« Respuesta #2 en: Lunes 18 de Diciembre de 2006, 20:51 »
0
Hola Juank.  Me has iluminado y al final lo he conseguido. Al estar en fase de aprendizaje me cuesta bastante pillar las cosas. Pero vamos...estoy aprendiendo un monton. En breve os seguire escribiendo, no creo ke tarde muxo xDD

Gracias.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: No Mirar Un Registro
« Respuesta #3 en: Martes 19 de Diciembre de 2006, 17:45 »
0
ok, estare atento en lo que pueda.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io