PR INS REGISTRY — различия между версиями
Материал из wiki.standart-n.ru
								
												
				| Natali  (обсуждение | вклад)  (Новая страница: «SET TERM ^ ;  create or alter procedure PR_INS_REGISTRY (     DOCTOR_ID DM_UUID_NULL) as declare variable TEMP_DATE DM_DATETIME; declare variable FIRST_DATE DM_DA…») | Natali  (обсуждение | вклад)  | ||
| (не показана одна промежуточная версия этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | SET TERM ^ ; | + |   SET TERM ^ ; | 
| − | + | ||
| − | create or alter procedure PR_INS_REGISTRY ( | + |    create or alter procedure PR_INS_REGISTRY ( | 
| − | + |        DOCTOR_ID DM_UUID_NULL) | |
| − | as | + |    as | 
| − | declare variable TEMP_DATE DM_DATETIME; | + |    declare variable TEMP_DATE DM_DATETIME; | 
| − | declare variable FIRST_DATE DM_DATETIME; | + |    declare variable FIRST_DATE DM_DATETIME; | 
| − | declare variable RES_DATE DM_DATETIME; | + |    declare variable RES_DATE DM_DATETIME; | 
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
|     begin |     begin | ||
| − |       temp_date=first_date+1; | + |    temp_date='01.01.2017 08:00:00'; | 
| − | + |    first_date='01.01.2017 08:00:00'; | |
| − | + |       while (temp_date<'01.01.2018 00:00:00') | |
| − | + |      do | |
| − | + |      begin | |
| − | end^ | + |       res_date=temp_date; | 
| − | + |       if ((select first 1 r.d$uuid from registry r where r.doctor_id=:doctor_id and | |
| − | SET TERM ; ^ | + |        r.status>-1 and r.reg_date=:res_date) is null) then | 
| − | + |         INSERT INTO REGISTRY (DOCTOR_ID, STATUS, REG_DATE) | |
| − | /* Following GRANT statetements are generated automatically */ | + |         VALUES (:doctor_id,0,:res_date); | 
| − | + |       temp_date=dateadd(minute,30,temp_date); | |
| − | GRANT SELECT,INSERT ON REGISTRY TO PROCEDURE PR_INS_REGISTRY; | + |       if (extract(hour from temp_date)=22 and extract(minute from temp_date)=00) then | 
| − | + |       begin | |
| − | /* Existing privileges on this procedure */ | + |         temp_date=first_date+1; | 
| − | + |         first_date=temp_date; | |
| − | GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO PROCEDURE TEMP; | + |       end | 
| − | GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO SYSDBA; | + |       --suspend; | 
| + |      end | ||
| + |    end^ | ||
| + | |||
| + |    SET TERM ; ^ | ||
| + | |||
| + |    /* Following GRANT statetements are generated automatically */ | ||
| + | |||
| + |    GRANT SELECT,INSERT ON REGISTRY TO PROCEDURE PR_INS_REGISTRY; | ||
| + | |||
| + |    /* Existing privileges on this procedure */ | ||
| + | |||
| + |    GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO PROCEDURE TEMP; | ||
| + |    GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO SYSDBA; | ||
Текущая версия на 14:54, 27 декабря 2016
 SET TERM ^ ;
  
  create or alter procedure PR_INS_REGISTRY (
      DOCTOR_ID DM_UUID_NULL)
  as
  declare variable TEMP_DATE DM_DATETIME;
  declare variable FIRST_DATE DM_DATETIME;
  declare variable RES_DATE DM_DATETIME;
  begin
  temp_date='01.01.2017 08:00:00';
  first_date='01.01.2017 08:00:00';
    while (temp_date<'01.01.2018 00:00:00')
    do
    begin
     res_date=temp_date;
     if ((select first 1 r.d$uuid from registry r where r.doctor_id=:doctor_id and
      r.status>-1 and r.reg_date=:res_date) is null) then
       INSERT INTO REGISTRY (DOCTOR_ID, STATUS, REG_DATE)
       VALUES (:doctor_id,0,:res_date);
     temp_date=dateadd(minute,30,temp_date);
     if (extract(hour from temp_date)=22 and extract(minute from temp_date)=00) then
     begin
       temp_date=first_date+1;
       first_date=temp_date;
     end
     --suspend;
    end
  end^
  
  SET TERM ; ^
  
  /* Following GRANT statetements are generated automatically */
  
  GRANT SELECT,INSERT ON REGISTRY TO PROCEDURE PR_INS_REGISTRY;
  
  /* Existing privileges on this procedure */
  
  GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO PROCEDURE TEMP;
  GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO SYSDBA;
