954 lines
36 KiB
Plaintext
954 lines
36 KiB
Plaintext
SET TERMOUT ON
|
|
SET FEEDBACK OFF
|
|
SET ECHO OFF
|
|
--
|
|
-- Update script van Facilitor 3.0 versie 3.20 naar 3.30
|
|
--
|
|
|
|
/*
|
|
* Dit script wordt geprecompileerd dus is het mogelijk (verplicht)
|
|
* om #ifdef's te gebruiken voor de diverse modules.
|
|
*
|
|
* Gebruik daar waar in de *.SQL-variant geen commentaar-tekst moet komen de
|
|
* C-style van uitcommentarieren. Daar waar WEL tekst in de uitvoer moet komen
|
|
* moet -- gebruikt worden.
|
|
*
|
|
*
|
|
*/
|
|
|
|
#include "modules.h"
|
|
#include "comsql.h"
|
|
#include "INS\inssql.h"
|
|
|
|
/*
|
|
* Test eerst of de vorige versie van module FAC zoals genoemd in tabel
|
|
* fac_module wel het te verwachten versienummer heeft
|
|
* als dat niet zo is dient de gebruiker het script ZELF af te breken middels
|
|
* control-c.
|
|
* Als dat wel zo is vervolgt het script en zal aan het einde van het script
|
|
* het interne versienummer en de datum worden bijgewerkt.
|
|
*/
|
|
|
|
#ifdef MASTER
|
|
SPOOL OFF
|
|
set heading off
|
|
clear screen
|
|
|
|
PROMPT ***********************************************************************
|
|
PROMPT
|
|
PROMPT UPGRADE SCRIPT van Facilitor 3.0 versie 03.20 naar 03.30
|
|
PROMPT
|
|
SELECT 'De huidige versie van Facilitor zou moeten zijn 03.20 en is: '
|
|
|| fac_module_version
|
|
FROM fac_module
|
|
WHERE fac_module_name='FAC';
|
|
PROMPT
|
|
PROMPT Indien de huidige versie NIET de verwachte versie is mag dit script
|
|
PROMPT niet worden gerund! In dit geval dient het script nu middels
|
|
PROMPT CONTROL-C te worden afgebroken.
|
|
PROMPT
|
|
PROMPT Indien de versies overeenkomen dient nu ENTER te worden gedrukt...
|
|
PROMPT
|
|
PROMPT ***********************************************************************
|
|
ACCEPT nix PROMPT ''
|
|
PROMPT
|
|
PROMPT De upgrade wordt vervolgd. Even geduld a.u.b...
|
|
PROMPT
|
|
|
|
SET TERMOUT OFF
|
|
SET HEADING OFF
|
|
SET FEEDBACK OFF
|
|
SET ECHO OFF
|
|
SET VERIFY OFF
|
|
SET LINESIZE 1000
|
|
SET SERVEROUTPUT ON;
|
|
|
|
SPOOL $320TO330.SQL
|
|
PROMPT SPOOL $320TO330.LST;
|
|
|
|
UPDMOD(FAC,320TO330)
|
|
UPDMOD(ALG,320TO330)
|
|
UPDMOD(INS,320TO330)
|
|
UPDMOD(PRS,320TO330)
|
|
UPDMOD(MLD,320TO330)
|
|
UPDMOD(CAD,320TO330)
|
|
UPDMOD(AKZ,320TO330)
|
|
UPDMOD(PRJ,320TO330)
|
|
UPDMOD(RES,320TO330)
|
|
UPDMOD(SCH,320TO330)
|
|
UPDMOD(SLE,320TO330)
|
|
|
|
UPDATE_VERSION('03.30');
|
|
COMMIT;
|
|
PROMPT SPOOL OFF;
|
|
SPOOL OFF
|
|
START $320TO330.SQL
|
|
#endif // MASTER
|
|
|
|
/* denk aan #ifdef constructies! */
|
|
|
|
/* PLAATS HIERONDER DE UPDATES */
|
|
|
|
/* Weer op de oude manier dus bijvoorbeeld :
|
|
|
|
#ifdef ALG
|
|
bla bla
|
|
#endif // ALG
|
|
|
|
etc.
|
|
*/
|
|
|
|
|
|
#ifdef ALG
|
|
|
|
#endif // ALG
|
|
|
|
|
|
#ifdef INS
|
|
|
|
alter table ins_kenmerk add(ins_kenmerk_locatiekolom VARCHAR2(30)
|
|
,ins_kenmerk_uniek NUMBER(1));
|
|
|
|
alter table ins_srtkenmerk modify (ins_srtkenmerk_lengte NUMBER(3));
|
|
alter table ins_srtkenmerk drop constraint ins_c_ins_srtkenmerk_lengte;
|
|
alter table ins_srtkenmerk add constraint ins_c_ins_srtkenmerk_lengte CHECK(ins_srtkenmerk_lengte >= 1
|
|
AND ins_srtkenmerk_lengte <= 255);
|
|
|
|
CREATE INDEX ins_i_ins_kenmerk_kenmerk2 ON ins_kenmerkdeel(ins_kenmerkdeel_waarde);
|
|
|
|
CREATE_VIEW(ins_v_srtdeel_kenmerk, INS_BIBLIOTHEEK_PRIVILEGE)
|
|
(ins_kenmerk_key,
|
|
ins_srtkenmerk_key,
|
|
ins_srtinstallatie_key,
|
|
ins_kenmerk_niveau,
|
|
ins_kenmerk_verplicht,
|
|
ins_kenmerk_toonbaar,
|
|
ins_kenmerk_uniek,
|
|
ins_kenmerk_locatiekolom,
|
|
ins_kenmerk_volgnummer,
|
|
ins_srtkenmerk_omschrijving,
|
|
ins_srtkenmerk_dimensie,
|
|
ins_srtkenmerk_kenmerktype,
|
|
ins_srtkenmerk_lengte,
|
|
ins_srtkenmerk_dec,
|
|
ins_srtkenmerk_nmin,
|
|
ins_srtkenmerk_nmax,
|
|
ins_refsrtkenmerk_key,
|
|
ins_srtdeel_key,
|
|
ins_srtdeel_omschrijving,
|
|
ins_srtdeel_upper,
|
|
ins_srtgroep_key,
|
|
ins_srtgroep_omschrijving,
|
|
ins_srtgroep_upper,
|
|
ins_discipline_key,
|
|
ins_discipline_omschrijving) AS
|
|
SELECT INS_K.ins_kenmerk_key,
|
|
INS_K.ins_srtkenmerk_key,
|
|
INS_K.ins_srtinstallatie_key,
|
|
INS_K.ins_kenmerk_niveau,
|
|
INS_K.ins_kenmerk_verplicht,
|
|
INS_K.ins_kenmerk_toonbaar,
|
|
INS_K.ins_kenmerk_uniek,
|
|
INS_K.ins_kenmerk_locatiekolom,
|
|
INS_K.ins_kenmerk_volgnummer,
|
|
INS_SK.ins_srtkenmerk_omschrijving,
|
|
INS_SK.ins_srtkenmerk_dimensie,
|
|
INS_SK.ins_srtkenmerk_kenmerktype,
|
|
INS_SK.ins_srtkenmerk_lengte,
|
|
INS_SK.ins_srtkenmerk_dec,
|
|
INS_SK.ins_srtkenmerk_nmin,
|
|
INS_SK.ins_srtkenmerk_nmax,
|
|
INS_SK.ins_refsrtkenmerk_key,
|
|
INS_SD.ins_srtdeel_key,
|
|
INS_SD.ins_srtdeel_omschrijving,
|
|
INS_SD.ins_srtdeel_upper,
|
|
INS_SG.ins_srtgroep_key,
|
|
INS_SG.ins_srtgroep_omschrijving,
|
|
INS_SG.ins_srtgroep_upper,
|
|
INS_D.ins_discipline_key,
|
|
INS_D.ins_discipline_omschrijving
|
|
FROM ins_kenmerk INS_K
|
|
, ins_srtkenmerk INS_SK
|
|
, ins_v_aanwezigsrtdeel INS_SD
|
|
, ins_srtgroep INS_SG
|
|
, ins_discipline INS_D
|
|
WHERE INS_K.ins_srtkenmerk_key = INS_SK.ins_srtkenmerk_key
|
|
AND INS_K.ins_kenmerk_niveau = 'S'
|
|
AND INS_SD.ins_srtdeel_key = INS_K.ins_srtinstallatie_key
|
|
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
|
|
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key
|
|
UNION
|
|
SELECT INS_K.ins_kenmerk_key,
|
|
INS_K.ins_srtkenmerk_key,
|
|
INS_K.ins_srtinstallatie_key,
|
|
INS_K.ins_kenmerk_niveau,
|
|
INS_K.ins_kenmerk_verplicht,
|
|
INS_K.ins_kenmerk_toonbaar,
|
|
INS_K.ins_kenmerk_uniek,
|
|
INS_K.ins_kenmerk_locatiekolom,
|
|
INS_K.ins_kenmerk_volgnummer,
|
|
INS_SK.ins_srtkenmerk_omschrijving,
|
|
INS_SK.ins_srtkenmerk_dimensie,
|
|
INS_SK.ins_srtkenmerk_kenmerktype,
|
|
INS_SK.ins_srtkenmerk_lengte,
|
|
INS_SK.ins_srtkenmerk_dec,
|
|
INS_SK.ins_srtkenmerk_nmin,
|
|
INS_SK.ins_srtkenmerk_nmax,
|
|
INS_SK.ins_refsrtkenmerk_key,
|
|
INS_SD.ins_srtdeel_key,
|
|
INS_SD.ins_srtdeel_omschrijving,
|
|
INS_SD.ins_srtdeel_upper,
|
|
INS_SG.ins_srtgroep_key,
|
|
INS_SG.ins_srtgroep_omschrijving,
|
|
INS_SG.ins_srtgroep_upper,
|
|
INS_D.ins_discipline_key,
|
|
INS_D.ins_discipline_omschrijving
|
|
FROM ins_kenmerk INS_K
|
|
, ins_srtkenmerk INS_SK
|
|
, ins_v_aanwezigsrtdeel INS_SD
|
|
, ins_v_aanwezigsrtgroep INS_SG
|
|
, ins_discipline INS_D
|
|
WHERE INS_K.ins_srtkenmerk_key = INS_SK.ins_srtkenmerk_key
|
|
AND INS_K.ins_kenmerk_niveau = 'G'
|
|
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
|
|
AND INS_SG.ins_srtgroep_key = INS_K.ins_srtinstallatie_key
|
|
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key
|
|
UNION
|
|
SELECT INS_K.ins_kenmerk_key,
|
|
INS_K.ins_srtkenmerk_key,
|
|
INS_K.ins_srtinstallatie_key,
|
|
INS_K.ins_kenmerk_niveau,
|
|
INS_K.ins_kenmerk_verplicht,
|
|
INS_K.ins_kenmerk_toonbaar,
|
|
INS_K.ins_kenmerk_uniek,
|
|
INS_K.ins_kenmerk_locatiekolom,
|
|
INS_K.ins_kenmerk_volgnummer,
|
|
INS_SK.ins_srtkenmerk_omschrijving,
|
|
INS_SK.ins_srtkenmerk_dimensie,
|
|
INS_SK.ins_srtkenmerk_kenmerktype,
|
|
INS_SK.ins_srtkenmerk_lengte,
|
|
INS_SK.ins_srtkenmerk_dec,
|
|
INS_SK.ins_srtkenmerk_nmin,
|
|
INS_SK.ins_srtkenmerk_nmax,
|
|
INS_SK.ins_refsrtkenmerk_key,
|
|
INS_SD.ins_srtdeel_key,
|
|
INS_SD.ins_srtdeel_omschrijving,
|
|
INS_SD.ins_srtdeel_upper,
|
|
INS_SG.ins_srtgroep_key,
|
|
INS_SG.ins_srtgroep_omschrijving,
|
|
INS_SG.ins_srtgroep_upper,
|
|
INS_D.ins_discipline_key,
|
|
INS_D.ins_discipline_omschrijving
|
|
FROM ins_kenmerk INS_K
|
|
, ins_srtkenmerk INS_SK
|
|
, ins_v_aanwezigsrtdeel INS_SD
|
|
, ins_v_aanwezigsrtgroep INS_SG
|
|
, ins_v_aanwezigdiscipline INS_D
|
|
WHERE INS_K.ins_srtkenmerk_key = INS_SK.ins_srtkenmerk_key
|
|
AND INS_K.ins_kenmerk_niveau = 'D'
|
|
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
|
|
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key
|
|
AND( INS_D.ins_discipline_key = INS_K.ins_srtinstallatie_key
|
|
OR INS_K.ins_srtinstallatie_key IS NULL);
|
|
|
|
CREATE_VIEW(ins_v_kenmerk_gegevens, INS_BIBLIOTHEEK_PRIVILEGE)
|
|
(ins_kenmerk_key,
|
|
ins_srtkenmerk_key,
|
|
ins_kenmerk_niveau,
|
|
ins_kenmerk_verplicht,
|
|
ins_kenmerk_toonbaar,
|
|
ins_kenmerk_uniek,
|
|
ins_kenmerk_locatiekolom,
|
|
ins_kenmerk_volgnummer,
|
|
ins_srtkenmerk_omschrijving,
|
|
ins_srtkenmerk_dimensie,
|
|
ins_srtkenmerk_kenmerktype,
|
|
ins_srtkenmerk_lengte,
|
|
ins_srtkenmerk_dec,
|
|
ins_srtkenmerk_nmin,
|
|
ins_srtkenmerk_nmax,
|
|
ins_refsrtkenmerk_key,
|
|
ins_srtdeel_key,
|
|
ins_srtdeel_omschrijving,
|
|
ins_srtdeel_upper,
|
|
ins_srtgroep_key,
|
|
ins_srtgroep_omschrijving,
|
|
ins_srtgroep_upper,
|
|
ins_discipline_key,
|
|
ins_discipline_omschrijving) AS
|
|
SELECT INS_K.ins_kenmerk_key,
|
|
INS_K.ins_srtkenmerk_key,
|
|
INS_K.ins_kenmerk_niveau,
|
|
INS_K.ins_kenmerk_verplicht,
|
|
INS_K.ins_kenmerk_toonbaar,
|
|
INS_K.ins_kenmerk_uniek,
|
|
INS_K.ins_kenmerk_locatiekolom,
|
|
INS_K.ins_kenmerk_volgnummer,
|
|
INS_SK.ins_srtkenmerk_omschrijving,
|
|
INS_SK.ins_srtkenmerk_dimensie,
|
|
INS_SK.ins_srtkenmerk_kenmerktype,
|
|
INS_SK.ins_srtkenmerk_lengte,
|
|
INS_SK.ins_srtkenmerk_dec,
|
|
INS_SK.ins_srtkenmerk_nmin,
|
|
INS_SK.ins_srtkenmerk_nmax,
|
|
INS_SK.ins_refsrtkenmerk_key,
|
|
INS_SD.ins_srtdeel_key,
|
|
INS_SD.ins_srtdeel_omschrijving,
|
|
INS_SD.ins_srtdeel_upper,
|
|
INS_SG.ins_srtgroep_key,
|
|
INS_SG.ins_srtgroep_omschrijving,
|
|
INS_SG.ins_srtgroep_upper,
|
|
INS_D.ins_discipline_key,
|
|
INS_D.ins_discipline_omschrijving
|
|
FROM ins_kenmerk INS_K, ins_srtkenmerk INS_SK,
|
|
ins_v_aanwezigsrtdeel INS_SD, ins_srtgroep INS_SG,
|
|
ins_discipline INS_D
|
|
WHERE INS_K.ins_srtkenmerk_key = INS_SK.ins_srtkenmerk_key
|
|
AND INS_K.ins_kenmerk_niveau = 'S'
|
|
AND INS_SD.ins_srtdeel_key = INS_K.ins_srtinstallatie_key
|
|
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
|
|
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key
|
|
UNION
|
|
SELECT INS_K.ins_kenmerk_key,
|
|
INS_K.ins_srtkenmerk_key,
|
|
INS_K.ins_kenmerk_niveau,
|
|
INS_K.ins_kenmerk_verplicht,
|
|
INS_K.ins_kenmerk_toonbaar,
|
|
INS_K.ins_kenmerk_uniek,
|
|
INS_K.ins_kenmerk_locatiekolom,
|
|
INS_K.ins_kenmerk_volgnummer,
|
|
INS_SK.ins_srtkenmerk_omschrijving,
|
|
INS_SK.ins_srtkenmerk_dimensie,
|
|
INS_SK.ins_srtkenmerk_kenmerktype,
|
|
INS_SK.ins_srtkenmerk_lengte,
|
|
INS_SK.ins_srtkenmerk_dec,
|
|
INS_SK.ins_srtkenmerk_nmin,
|
|
INS_SK.ins_srtkenmerk_nmax,
|
|
INS_SK.ins_refsrtkenmerk_key,
|
|
TO_NUMBER(NULL),
|
|
NULL,
|
|
NULL,
|
|
INS_SG.ins_srtgroep_key,
|
|
INS_SG.ins_srtgroep_omschrijving,
|
|
INS_SG.ins_srtgroep_upper,
|
|
INS_D.ins_discipline_key,
|
|
INS_D.ins_discipline_omschrijving
|
|
FROM ins_kenmerk INS_K, ins_srtkenmerk INS_SK,
|
|
ins_v_aanwezigsrtgroep INS_SG,
|
|
ins_discipline INS_D
|
|
WHERE INS_K.ins_srtkenmerk_key = INS_SK.ins_srtkenmerk_key
|
|
AND INS_K.ins_kenmerk_niveau = 'G'
|
|
AND INS_SG.ins_srtgroep_key = INS_K.ins_srtinstallatie_key
|
|
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key
|
|
UNION
|
|
SELECT INS_K.ins_kenmerk_key,
|
|
INS_K.ins_srtkenmerk_key,
|
|
INS_K.ins_kenmerk_niveau,
|
|
INS_K.ins_kenmerk_verplicht,
|
|
INS_K.ins_kenmerk_toonbaar,
|
|
INS_K.ins_kenmerk_uniek,
|
|
INS_K.ins_kenmerk_locatiekolom,
|
|
INS_K.ins_kenmerk_volgnummer,
|
|
INS_SK.ins_srtkenmerk_omschrijving,
|
|
INS_SK.ins_srtkenmerk_dimensie,
|
|
INS_SK.ins_srtkenmerk_kenmerktype,
|
|
INS_SK.ins_srtkenmerk_lengte,
|
|
INS_SK.ins_srtkenmerk_dec,
|
|
INS_SK.ins_srtkenmerk_nmin,
|
|
INS_SK.ins_srtkenmerk_nmax,
|
|
INS_SK.ins_refsrtkenmerk_key,
|
|
TO_NUMBER(NULL),
|
|
NULL,
|
|
NULL,
|
|
TO_NUMBER(NULL),
|
|
NULL,
|
|
NULL,
|
|
INS_D.ins_discipline_key,
|
|
INS_D.ins_discipline_omschrijving
|
|
FROM ins_kenmerk INS_K, ins_srtkenmerk INS_SK,
|
|
ins_v_aanwezigdiscipline INS_D
|
|
WHERE INS_K.ins_srtkenmerk_key = INS_SK.ins_srtkenmerk_key
|
|
AND INS_K.ins_kenmerk_niveau = 'D'
|
|
AND INS_K.ins_srtinstallatie_key = INS_D.ins_discipline_key
|
|
UNION
|
|
SELECT INS_K.ins_kenmerk_key,
|
|
INS_K.ins_srtkenmerk_key,
|
|
INS_K.ins_kenmerk_niveau,
|
|
INS_K.ins_kenmerk_verplicht,
|
|
INS_K.ins_kenmerk_toonbaar,
|
|
INS_K.ins_kenmerk_uniek,
|
|
INS_K.ins_kenmerk_locatiekolom,
|
|
INS_K.ins_kenmerk_volgnummer,
|
|
INS_SK.ins_srtkenmerk_omschrijving,
|
|
INS_SK.ins_srtkenmerk_dimensie,
|
|
INS_SK.ins_srtkenmerk_kenmerktype,
|
|
INS_SK.ins_srtkenmerk_lengte,
|
|
INS_SK.ins_srtkenmerk_dec,
|
|
INS_SK.ins_srtkenmerk_nmin,
|
|
INS_SK.ins_srtkenmerk_nmax,
|
|
INS_SK.ins_refsrtkenmerk_key,
|
|
TO_NUMBER(NULL),
|
|
NULL,
|
|
NULL,
|
|
TO_NUMBER(NULL),
|
|
NULL,
|
|
NULL,
|
|
TO_NUMBER(NULL),
|
|
NULL
|
|
FROM ins_kenmerk INS_K, ins_srtkenmerk INS_SK
|
|
WHERE INS_K.ins_srtkenmerk_key = INS_SK.ins_srtkenmerk_key
|
|
AND INS_K.ins_kenmerk_niveau = 'D'
|
|
AND INS_K.ins_srtinstallatie_key IS NULL;
|
|
|
|
CREATE_VIEW(ins_v_srtdeel_kenmerkdeel, INS_BIBLIOTHEEK_PRIVILEGE)
|
|
(ins_kenmerk_key,
|
|
ins_srtkenmerk_key,
|
|
ins_kenmerk_niveau,
|
|
ins_kenmerk_verplicht,
|
|
ins_kenmerk_toonbaar,
|
|
ins_kenmerk_uniek,
|
|
ins_kenmerk_locatiekolom,
|
|
ins_kenmerk_volgnummer,
|
|
ins_srtkenmerk_omschrijving,
|
|
ins_srtkenmerk_dimensie,
|
|
ins_srtkenmerk_kenmerktype,
|
|
ins_srtkenmerk_lengte,
|
|
ins_srtkenmerk_dec,
|
|
ins_srtkenmerk_nmin,
|
|
ins_srtkenmerk_nmax,
|
|
ins_refsrtkenmerk_key,
|
|
ins_srtdeel_key,
|
|
ins_srtgroep_key,
|
|
ins_discipline_key,
|
|
ins_kenmerkdeel_key,
|
|
ins_deel_key,
|
|
ins_kenmerkdeel_waarde) AS
|
|
SELECT INS_SDK.ins_kenmerk_key,
|
|
INS_SDK.ins_srtkenmerk_key,
|
|
INS_SDK.ins_kenmerk_niveau,
|
|
INS_SDK.ins_kenmerk_verplicht,
|
|
INS_SDK.ins_kenmerk_toonbaar,
|
|
INS_SDK.ins_kenmerk_uniek,
|
|
INS_SDK.ins_kenmerk_locatiekolom,
|
|
INS_SDK.ins_kenmerk_volgnummer,
|
|
INS_SDK.ins_srtkenmerk_omschrijving,
|
|
INS_SDK.ins_srtkenmerk_dimensie,
|
|
INS_SDK.ins_srtkenmerk_kenmerktype,
|
|
INS_SDK.ins_srtkenmerk_lengte,
|
|
INS_SDK.ins_srtkenmerk_dec,
|
|
INS_SDK.ins_srtkenmerk_nmin,
|
|
INS_SDK.ins_srtkenmerk_nmax,
|
|
INS_SDK.ins_refsrtkenmerk_key,
|
|
INS_SDK.ins_srtdeel_key,
|
|
INS_SDK.ins_srtgroep_key,
|
|
INS_SDK.ins_discipline_key,
|
|
INS_KD.ins_kenmerkdeel_key,
|
|
INS_D.ins_deel_key,
|
|
INS_KD.ins_kenmerkdeel_waarde
|
|
FROM ins_v_aanwezigdeel INS_D,
|
|
ins_kenmerkdeel INS_KD,
|
|
ins_v_srtdeel_kenmerk INS_SDK
|
|
WHERE INS_D.ins_deel_key = INS_KD.ins_deel_key
|
|
AND INS_D.ins_srtdeel_key = INS_SDK.ins_srtdeel_key
|
|
AND INS_SDK.ins_kenmerk_key = INS_KD.ins_kenmerk_key
|
|
UNION
|
|
SELECT INS_SDK.ins_kenmerk_key,
|
|
INS_SDK.ins_srtkenmerk_key,
|
|
INS_SDK.ins_kenmerk_niveau,
|
|
INS_SDK.ins_kenmerk_verplicht,
|
|
INS_SDK.ins_kenmerk_toonbaar,
|
|
INS_SDK.ins_kenmerk_uniek,
|
|
INS_SDK.ins_kenmerk_locatiekolom,
|
|
INS_SDK.ins_kenmerk_volgnummer,
|
|
INS_SDK.ins_srtkenmerk_omschrijving,
|
|
INS_SDK.ins_srtkenmerk_dimensie,
|
|
INS_SDK.ins_srtkenmerk_kenmerktype,
|
|
INS_SDK.ins_srtkenmerk_lengte,
|
|
INS_SDK.ins_srtkenmerk_dec,
|
|
INS_SDK.ins_srtkenmerk_nmin,
|
|
INS_SDK.ins_srtkenmerk_nmax,
|
|
INS_SDK.ins_refsrtkenmerk_key,
|
|
INS_SDK.ins_srtdeel_key,
|
|
INS_SDK.ins_srtgroep_key,
|
|
INS_SDK.ins_discipline_key,
|
|
TO_NUMBER(NULL),
|
|
INS_D.ins_deel_key,
|
|
NULL
|
|
FROM ins_v_aanwezigdeel INS_D,
|
|
ins_v_srtdeel_kenmerk INS_SDK
|
|
WHERE INS_D.ins_srtdeel_key = INS_SDK.ins_srtdeel_key
|
|
AND NOT EXISTS (SELECT INS_KD.ins_deel_key
|
|
FROM ins_kenmerkdeel INS_KD
|
|
WHERE INS_KD.ins_deel_key = INS_D.ins_deel_key
|
|
AND INS_KD.ins_kenmerk_key = INS_SDK.ins_kenmerk_key)
|
|
UNION
|
|
SELECT INS_SDK.ins_kenmerk_key,
|
|
INS_SDK.ins_srtkenmerk_key,
|
|
INS_SDK.ins_kenmerk_niveau,
|
|
INS_SDK.ins_kenmerk_verplicht,
|
|
INS_SDK.ins_kenmerk_toonbaar,
|
|
INS_SDK.ins_kenmerk_uniek,
|
|
INS_SDK.ins_kenmerk_locatiekolom,
|
|
INS_SDK.ins_kenmerk_volgnummer,
|
|
INS_SDK.ins_srtkenmerk_omschrijving,
|
|
INS_SDK.ins_srtkenmerk_dimensie,
|
|
INS_SDK.ins_srtkenmerk_kenmerktype,
|
|
INS_SDK.ins_srtkenmerk_lengte,
|
|
INS_SDK.ins_srtkenmerk_dec,
|
|
INS_SDK.ins_srtkenmerk_nmin,
|
|
INS_SDK.ins_srtkenmerk_nmax,
|
|
INS_SDK.ins_refsrtkenmerk_key,
|
|
INS_SDK.ins_srtdeel_key,
|
|
INS_SDK.ins_srtgroep_key,
|
|
INS_SDK.ins_discipline_key,
|
|
TO_NUMBER(NULL),
|
|
TO_NUMBER(NULL),
|
|
NULL
|
|
FROM ins_v_srtdeel_kenmerk INS_SDK;
|
|
|
|
|
|
DEF_FAC_MESSAGE ('INS_M188', 'Het locatie gebonden veld komt niet voor in de referentie tabel/view.');
|
|
DEF_FAC_MESSAGE ('INS_M189', 'Het referentieveld voor locatiegebonden moet ingevuld worden.');
|
|
DEF_FAC_MESSAGE ('INS_M190', 'Binnen een Locatie en Deelsoort is dit kenmerk niet uniek.');
|
|
DEF_FAC_MESSAGE ('INS_M191', 'Toevoegen/wijzigen unieke kenmerkwaarde %1% niet mogelijk bij meerdere objecten.');
|
|
DEF_FAC_MESSAGE ('INS_M192', 'De waarde "%1%" bestaat al voor het unieke kenmerk %2%.');
|
|
DEF_FAC_MESSAGE ('INS_M193', 'U hebt niet genoeg rechten om deze functie te gebruiken.');
|
|
DEF_FAC_MESSAGE ('INS_KENMERK_LOCATIEGEBONDEN', 'Locatie gebonden');
|
|
DEF_FAC_ENTITY ('INS_KENMERK_UNIEK', 'Uniek', null, null);
|
|
|
|
CREATE_TRIGGER(ins_t_ins_deel_B_IU)
|
|
BEFORE INSERT OR UPDATE ON ins_deel
|
|
FOR EACH ROW
|
|
BEGIN
|
|
-- LET OP : Deze trigger is ook gedefinieerd in RES !!
|
|
UPDATE_PRIMARY_KEY(ins_deel_key,ins_s_ins_inst_keys);
|
|
UPDATE_UPPER(ins_deel_omschrijving,ins_deel_upper);
|
|
-- Indien verplaatsing of verwijdering of reincarnatie dan alleen vanuit de
|
|
-- CAD-omgeving, d.i. als tegelijk ins_deel_getekend een nieuwe waarde krijgt.
|
|
-- Dus een foutmelding als dit niet zo is.
|
|
CHECK_CADMUTATIE2(ins_deel_verwijder, ins_deel_getekend, ins_alg_ruimte_key, 'ins_m187');
|
|
|
|
IF :new.ins_deel_parent_key IS NULL
|
|
THEN
|
|
DECLARE
|
|
Dummy BOOLEAN;
|
|
BEGIN
|
|
--Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_VERWIJDER', :new.ins_deel_key);
|
|
Dummy := fac_p_fac_save_restore.SavePrimaryKeyAndDate('INS_DEEL_VERWIJDER', :new.ins_deel_key, :old.ins_deel_verwijder);
|
|
END;
|
|
END IF;
|
|
|
|
IF :new.ins_deel_verwijder IS NOT NULL
|
|
THEN
|
|
DECLARE
|
|
Dummy BOOLEAN;
|
|
BEGIN
|
|
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_ONTKOPPEL', :new.ins_deel_key);
|
|
END;
|
|
END IF;
|
|
|
|
-- Vul het veld INS_DISCIPLINE van het huidige deel.
|
|
IF :old.ins_srtdeel_key IS NULL
|
|
OR :old.ins_srtdeel_key <> :new.ins_srtdeel_key
|
|
OR :old.ins_discipline_key IS NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT INS_D.ins_discipline_key
|
|
INTO :new.ins_discipline_key
|
|
FROM ins_srtdeel INS_SD
|
|
, ins_srtgroep INS_SG
|
|
, ins_tab_discipline INS_D
|
|
WHERE INS_SD.ins_srtdeel_key = :new.ins_srtdeel_key
|
|
AND INS_SD.ins_srtgroep_key = INS_SG.ins_srtgroep_key
|
|
AND INS_SG.ins_discipline_key = INS_D.ins_discipline_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN :new.ins_discipline_key := NULL;
|
|
END;
|
|
END IF;
|
|
-- Zoek de (redundante) alg_locatie_key erbij indien verplaatst.
|
|
IF :old.ins_alg_ruimte_key IS NULL
|
|
OR :old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key
|
|
OR :new.ins_alg_locatie_key IS NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT alg_locatie_key
|
|
INTO :new.ins_alg_locatie_key
|
|
FROM ins_v_alg_overzicht
|
|
WHERE alg_onroerendgoed_keys = :new.ins_alg_ruimte_key
|
|
AND alg_onroerendgoed_type = :new.ins_alg_ruimte_type;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN :new.ins_alg_locatie_key := NULL;
|
|
END;
|
|
END IF;
|
|
/* Bij INS_DEEL in INS-mode moet INS_ALG_RUIMTE_KEY ingevuld zijn
|
|
* en wel met ruimte, verdieping, gebouw of terreinsector.
|
|
* Daarvoor moet ook het INS_ALG_RUIMTE_TYPE veld goed ingevuld zijn
|
|
* (met 'R' of 'V' of 'G' of 'T').
|
|
* Dit geldt als INS_ALG_RUIMTE_KEY veranderd is of als er een
|
|
* nieuw record geinsert wordt.
|
|
*
|
|
*
|
|
* IN INV-mode hoeft INS_ALG_RUIMTE_KEY niet ingevuld te zijn, maar
|
|
* als deze ingevuld is moet INS_ALG_RUIMTE_KEY met ruimte of werkplek
|
|
* gevuld zijn, daarvoor moet het veld INS_ALG_RUITMTE_KEY goed
|
|
* ingevuld zijn (met 'R' of 'W').
|
|
*
|
|
* IN INV-mode kan het veld INS_PRS_BEZIT_KEY ook ingevuld zijn, maar
|
|
* INS_ALG_RUIMTE_KEY en INS_PRS_BEZIT_KEY kunnen niet beide ingevuld worden.
|
|
* INS_PRS_BEZIT_KEY kan de waarde perslid of afdeling bevatten en het
|
|
* veld INS_PRS_BEZIT_TYPE moet dan goed ingevuld zijn (met 'P' of 'A').
|
|
* AH 05-06-96 Nu kunnen biede velden ingevuld zijn.
|
|
*/
|
|
IF :new.ins_deel_module = 'INS'
|
|
AND (:old.ins_alg_ruimte_key <> :new.ins_alg_ruimte_key
|
|
OR :old.ins_alg_ruimte_key IS NULL)
|
|
THEN
|
|
IF :new.ins_alg_ruimte_type = 'W' /* 990218/BIV - #2251 - Deel kan ook op werkplek worden geplaatst */
|
|
THEN
|
|
CHECK_KEY_REFERENCE(prs_v_aanwezigwerkplek , prs_werkplek_key , :new.ins_alg_ruimte_key, 'ins_m174');
|
|
ELSIF :new.ins_alg_ruimte_type = 'R'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(alg_v_aanwezigruimte , alg_ruimte_key , :new.ins_alg_ruimte_key, 'ins_m092');
|
|
ELSIF :new.ins_alg_ruimte_type = 'T'
|
|
THEN
|
|
CHECK_KEY_REFERENCE(alg_v_aanwezigterreinsector, alg_terreinsector_key, :new.ins_alg_ruimte_key, 'ins_m095');
|
|
ELSE
|
|
APPLICATION_ERROR(-20000, 'ins_m84');
|
|
END IF;
|
|
DECLARE
|
|
Dummy BOOLEAN;
|
|
BEGIN
|
|
-- Alleen bestaande delen hebben mogelijk te verplaatsen onderdelen.
|
|
IF :old.ins_deel_aanmaak IS NOT NULL
|
|
AND :new.ins_deel_parent_key IS NULL
|
|
THEN
|
|
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_DEEL_CASCADE', :new.ins_deel_key);
|
|
END IF;
|
|
END;
|
|
END IF;
|
|
UPDATE_AANMAAKDATUM(ins_deel, ins_deel_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(ins_t_ins_deel_S_A_IU)
|
|
AFTER UPDATE ON ins_deel
|
|
BEGIN
|
|
DECLARE
|
|
IndexNr NUMBER;
|
|
PrimaryKey NUMBER(10);
|
|
Dummy BOOLEAN;
|
|
lNested NUMBER;
|
|
lCount NUMBER;
|
|
deletemode DATE;
|
|
old_datum_of_deel DATE;
|
|
BEGIN
|
|
-- We controleren of we zijn aangeroepen vanuit onszelf. Ook al hebben we daarbij
|
|
-- geen keys aan fac_selectie toegevoegd, die van het hoogste niveau staan er, en
|
|
-- die moeten we niet weer vanaf nummer 1 gaan behandelen, anders zitten we echt
|
|
-- in een oneindige loop.
|
|
-- We krijgen hier geen mee, omdat we geen onderdelen van onderdelen kennen.
|
|
lNested := fac_p_fac_save_restore.GetPrimaryKey('INS_TRIGGER_BUSY', 1);
|
|
IF lNested IS NULL
|
|
THEN
|
|
IndexNr := 1;
|
|
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_VERWIJDER', IndexNr);
|
|
old_datum_of_deel := fac_p_fac_save_restore.GetDate('INS_DEEL_VERWIJDER', PrimaryKey);
|
|
|
|
WHILE PrimaryKey IS NOT NULL
|
|
LOOP
|
|
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_TRIGGER_BUSY', 1);
|
|
|
|
/* Jammer maar helaas, vanwege syntaxredenen moeten we weten of we met UNDO te maken hebben
|
|
/* Als parent is verwijderd, dan is deletemode gevuld met zijn datum */
|
|
/* Als parent terug wordt gehaald, dan is delete-mode gevuld met NULL ( betekent FALSE) */
|
|
SELECT ins_deel_verwijder
|
|
INTO deletemode
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = PrimaryKey;
|
|
|
|
|
|
IF deletemode IS NULL /* Het deel wordt terug gehaald (UNDO) */
|
|
THEN
|
|
UPDATE ins_deel
|
|
SET ins_deel_verwijder = NULL /* Bijbehorende onderdelen ook terughalen */
|
|
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
|
AND ins_deel.ins_deel_verwijder = old_datum_of_deel;
|
|
ELSE
|
|
/* Het deel wordt (of beter: is) verwijderd */
|
|
UPDATE ins_deel
|
|
SET ins_deel_verwijder = deletemode /* Alle AANWEZIGE onderdelen verwijderen */
|
|
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
|
AND ins_deel.ins_deel_verwijder IS NULL;
|
|
END IF;
|
|
|
|
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_TRIGGER_BUSY');
|
|
|
|
IndexNr := IndexNr + 1;
|
|
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_VERWIJDER', IndexNr);
|
|
old_datum_of_deel := fac_p_fac_save_restore.GetDate('INS_DEEL_VERWIJDER', PrimaryKey);
|
|
|
|
END LOOP;
|
|
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_DEEL_VERWIJDER');
|
|
IndexNr := 1;
|
|
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_CASCADE', IndexNr);
|
|
WHILE PrimaryKey IS NOT NULL
|
|
LOOP
|
|
-- Om weer te voorkomen dat de BEFORE STATEMENT trigger onnodig vuurt, controleren
|
|
-- we eerst of het statement wel nodig is, d.i. of er onderdelen zijn die nog
|
|
-- verplaatst moeten worden.
|
|
SELECT COUNT(*)
|
|
INTO lCount
|
|
FROM ins_deel
|
|
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
|
AND ins_deel.ins_deel_verwijder IS NULL;
|
|
|
|
IF lCount > 0
|
|
THEN
|
|
Dummy := fac_p_fac_save_restore.SavePrimaryKey('INS_TRIGGER_BUSY', 1);
|
|
UPDATE ins_deel
|
|
SET (ins_alg_ruimte_key
|
|
, ins_alg_ruimte_type
|
|
, ins_alg_locatie_key) = (SELECT ins_alg_ruimte_key
|
|
, ins_alg_ruimte_type
|
|
, ins_alg_locatie_key
|
|
FROM ins_deel
|
|
WHERE ins_deel_key = PrimaryKey)
|
|
WHERE ins_deel.ins_deel_parent_key = PrimaryKey
|
|
AND ins_deel.ins_deel_verwijder IS NULL;
|
|
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_TRIGGER_BUSY');
|
|
END IF;
|
|
IndexNr := IndexNr + 1;
|
|
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_CASCADE', IndexNr);
|
|
END LOOP;
|
|
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_DEEL_CASCADE');
|
|
ELSE
|
|
NULL;
|
|
END IF; -- lNested
|
|
END;
|
|
-- Add statements that need execution even when nested here:
|
|
--
|
|
-- Attentie: Alle koppelingen met delen uit de selectie worden verwijderd. Doordat deze
|
|
-- selectie tijdens deze transactie groter kan worden door de bijbehorende onderdelen, wordt
|
|
-- mogelijkerwijs vaker ins_p_delete_deelkoppeling() aangeroepen dan strikt nodig is (de reeds
|
|
-- aanwezige keys blijven oon staan). Dit is niet echt een probleem in de huidige context, maar
|
|
-- kan dat worden als die functie veel tijd kost ook al is er niks te doen.
|
|
DECLARE
|
|
IndexNr NUMBER;
|
|
PrimaryKey NUMBER(10);
|
|
Dummy BOOLEAN;
|
|
BEGIN
|
|
IndexNr := 1;
|
|
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_ONTKOPPEL', IndexNr);
|
|
WHILE PrimaryKey IS NOT NULL
|
|
LOOP
|
|
Dummy := ins_p_delete_deelkoppeling(PrimaryKey);
|
|
IndexNr := IndexNr + 1;
|
|
PrimaryKey := fac_p_fac_save_restore.GetPrimaryKey('INS_DEEL_ONTKOPPEL', IndexNr);
|
|
END LOOP;
|
|
Dummy := fac_p_fac_save_restore.ResetSelectie('INS_DEEL_ONTKOPPEL');
|
|
END;
|
|
END;
|
|
/
|
|
|
|
#endif // INS
|
|
|
|
|
|
#ifdef FAC
|
|
|
|
/* Module onafhankelijk: */
|
|
DEF_FAC_ENTITY ('MENU_ALGEMEEN' , 'Algemeen', NULL, NULL, 'General');
|
|
DEF_FAC_ENTITY ('MENU_ALG_AUTORISATIE' , 'Autorisatie', NULL, NULL, 'Authorization');
|
|
DEF_FAC_ENTITY ('MENU_STOP' , 'Stoppen', NULL, NULL, 'Quit');
|
|
DEF_FAC_ENTITY ('MENU_REGISTRATIE' , 'Registratie', NULL, NULL, 'Registration');
|
|
DEF_FAC_ENTITY ('MENU_BIBLIOTHEEK' , 'Bibliotheek', NULL, NULL, 'Library');
|
|
DEF_FAC_ENTITY ('MENU_PRS_RUIMTEGEBR' , 'Ruimtegebruik', NULL, NULL, 'Room usage');
|
|
DEF_FAC_ENTITY ('MENU_PRS_BEDRIJF' , 'Bedrijf', NULL, NULL, 'Company');
|
|
DEF_FAC_ENTITY ('MENU_HELP_INHOUD' , 'Inhoud', NULL, NULL, 'Contents');
|
|
DEF_FAC_ENTITY ('MENU_HELP_OVER' , 'Over' , NULL, NULL, 'About');
|
|
DEF_FAC_ENTITY ('MENU_MLD_KOSTENPOST' , 'Kostenpost', NULL, NULL, 'C'||CHR(38)||'osts category');
|
|
DEF_FAC_ENTITY ('MENU_MLD_ADRES' , 'Adresgegevens', NULL, NULL,'Addresses');
|
|
DEF_FAC_ENTITY ('MENU_MLD_BESTEL' , 'Bestelorder', NULL, NULL,'Order '||CHR(38)||'receipt');
|
|
DEF_FAC_ENTITY ('MENU_MLD_EXPORT' , 'Exporteren', NULL, NULL, 'Export');
|
|
DEF_FAC_ENTITY ('MENU_KENMERK' , 'Kenmerken' ,NULL, NULL,'Properties');
|
|
DEF_FAC_ENTITY ('MENU_FAC_GEBRUIKERS' , 'LAN-Gebruikers', NULL, NULL, 'LAN users');
|
|
DEF_FAC_ENTITY ('MENU_FAC_WEBUSERS' , 'WEB-Gebruikers', NULL, NULL, 'WEB users');
|
|
|
|
DEF_FAC_MESSAGE ('FAC_M044', 'Weet u zeker dat u wilt stoppen ?', 'Are you sure you want to quit?');
|
|
DEF_FAC_MESSAGE ('MENU_MLD_OPDR2' ,'Standaard opdracht','Standard order');
|
|
|
|
ALTER TABLE fac_usrdata DROP CONSTRAINT fac_u_fac_usrdata_upper;
|
|
ALTER TABLE fac_usrdata ADD CONSTRAINT fac_u_fac_usrdata_upper UNIQUE(fac_usrdata_upper,fac_usrtab_key,fac_usrdata_verwijder);
|
|
|
|
CREATE INDEX fac_i_fac_gebruiker3 ON fac_gebruiker(fac_functie_key);
|
|
CREATE INDEX fac_i_fac_gebruiker4 ON fac_gebruiker(fac_gebruiker_username,fac_gebruiker_kolom,fac_gebruiker_module);
|
|
|
|
DEF_FAC_ENTITY ('FAC_PRINTER_EMAIL', 'E-mail', NULL, NULL);
|
|
DEF_FAC_ENTITY ('FAC_PRINTER_EMAILADDRESS','E-mail adres', NULL, NULL);
|
|
|
|
DEF_FAC_MESSAGE ('FAC_M042', 'E-mail adres is niet ingevuld.');
|
|
DEF_FAC_MESSAGE ('FAC_M043', 'Fout opgetreden tijdens het opstarten van het E-mail programma.');
|
|
|
|
ALTER TABLE fac_selectie ADD fac_selectie_datum DATE;
|
|
|
|
|
|
UPDATE FAC_MESSAGE
|
|
SET FAC_MESSAGE_TEXT = 'Facilitor 3.3'
|
|
WHERE FAC_MESSAGE_CODE = 'FAC_M002';
|
|
|
|
UPDATE FAC_MESSAGE
|
|
SET FAC_MESSAGE_TEXT = 'Welkom bij Facilitor 3.3'
|
|
WHERE FAC_MESSAGE_CODE = 'FAC_M035';
|
|
|
|
UPDATE FAC_MESSAGE
|
|
SET FAC_MESSAGE_TEXT = 'Copyright (c) 1996-2000, Facilitor Software Nederland bv'
|
|
WHERE FAC_MESSAGE_CODE = 'FAC_M005';
|
|
|
|
|
|
CREATE OR REPLACE PACKAGE fac_p_fac_save_restore AS
|
|
-- Maak de vorige selectie van de tabel en de huidige sessie leeg.
|
|
FUNCTION ResetSelectie( TableName IN VARCHAR2 ) RETURN BOOLEAN;
|
|
-- Onthou de primary key van de tabel en de huidige sessie.
|
|
FUNCTION SavePrimaryKey( TableName IN VARCHAR2, PrimaryKey IN NUMBER ) RETURN BOOLEAN;
|
|
-- Geef de nth primary key van de tabel en de huidige sessie. IndexNr begint met 1.
|
|
FUNCTION GetPrimaryKey( TableName IN VARCHAR2, IndexNr IN NUMBER ) RETURN NUMBER;
|
|
-- Onthou naast Primary key ook de datum i.v.m. een eventuele UNDO vanuit AutoCAD.
|
|
FUNCTION SavePrimaryKeyAndDate( TableName IN VARCHAR2, PrimaryKey IN NUMBER, Datum IN Date ) RETURN BOOLEAN;
|
|
-- Geef verwijderdatum of NULL terug van primary key i.v.m. eventuele UNDO vanuit AutoCAD.
|
|
FUNCTION GetDate( TableName IN VARCHAR2, PrimaryKey IN NUMBER ) RETURN DATE;
|
|
PRAGMA RESTRICT_REFERENCES (GetPrimaryKey,WNDS, WNPS);
|
|
END fac_p_fac_save_restore;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY fac_p_fac_save_restore AS
|
|
FUNCTION GetSessionId RETURN VARCHAR2 IS
|
|
SessionId VARCHAR2(20);
|
|
BEGIN
|
|
SELECT USERENV('SESSIONID')
|
|
INTO SessionId
|
|
FROM DUAL;
|
|
|
|
RETURN SessionId;
|
|
END;
|
|
|
|
FUNCTION ResetSelectie( TableName IN VARCHAR2 ) RETURN BOOLEAN IS
|
|
SessionId VARCHAR2(20);
|
|
BEGIN
|
|
SessionId := GetSessionId;
|
|
|
|
DELETE FROM fac_selectie
|
|
WHERE fac_selectie_node = SessionId
|
|
AND fac_selectie_tabel = TableName;
|
|
|
|
RETURN TRUE;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN RETURN FALSE;
|
|
END;
|
|
|
|
FUNCTION SavePrimaryKey( TableName IN VARCHAR2, PrimaryKey IN NUMBER ) RETURN BOOLEAN IS
|
|
SessionId VARCHAR2(20);
|
|
BEGIN
|
|
SessionId := GetSessionId;
|
|
|
|
INSERT INTO fac_selectie (fac_selectie_node,
|
|
fac_selectie_tabel,
|
|
fac_selectie_key)
|
|
VALUES (SessionId, TableName, PrimaryKey);
|
|
|
|
RETURN TRUE;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN RETURN FALSE;
|
|
END;
|
|
|
|
-- Geef de nth Fac_Selectie_Key van de geselecteerde records
|
|
-- terug. IndexNr begint met 1.
|
|
FUNCTION GetPrimaryKey( TableName IN VARCHAR2, IndexNr IN NUMBER ) RETURN NUMBER IS
|
|
SessionId VARCHAR2(20);
|
|
CURSOR Selectie IS SELECT DISTINCT fac_selectie_key
|
|
FROM fac_selectie
|
|
WHERE fac_selectie_node = SessionId
|
|
AND fac_selectie_tabel = TableName
|
|
ORDER BY fac_selectie_key;
|
|
|
|
SelectieRec Selectie%ROWTYPE;
|
|
TmpIndex NUMBER;
|
|
ReturnKey NUMBER(10);
|
|
BEGIN
|
|
SessionId := GetSessionId;
|
|
ReturnKey := NULL;
|
|
TmpIndex := 1;
|
|
FOR SelectieRec IN Selectie
|
|
LOOP
|
|
IF IndexNr = TmpIndex
|
|
THEN
|
|
ReturnKey := SelectieRec.fac_selectie_key;
|
|
EXIT;
|
|
END IF;
|
|
TmpIndex := TmpIndex + 1;
|
|
END LOOP;
|
|
RETURN ReturnKey;
|
|
END;
|
|
|
|
FUNCTION SavePrimaryKeyAndDate( TableName IN VARCHAR2, PrimaryKey IN NUMBER, Datum IN Date ) RETURN BOOLEAN IS
|
|
SessionId VARCHAR2(20);
|
|
BEGIN
|
|
SessionId := GetSessionId;
|
|
|
|
INSERT INTO fac_selectie (fac_selectie_node,
|
|
fac_selectie_tabel,
|
|
fac_selectie_key,
|
|
fac_selectie_datum)
|
|
VALUES (SessionId, TableName, PrimaryKey, Datum);
|
|
|
|
RETURN TRUE;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN RETURN FALSE;
|
|
END;
|
|
|
|
FUNCTION GetDate( TableName IN VARCHAR2, PrimaryKey IN NUMBER ) RETURN DATE IS
|
|
SessionId VARCHAR2(20);
|
|
ReturnDate Date;
|
|
|
|
CURSOR Selectie IS SELECT DISTINCT fac_selectie_datum
|
|
FROM fac_selectie
|
|
WHERE fac_selectie_node = SessionId
|
|
AND fac_selectie_key = PrimaryKey
|
|
AND fac_selectie_tabel = TableName;
|
|
|
|
SelectieRec Selectie%ROWTYPE;
|
|
TmpIndex NUMBER;
|
|
ReturnKey NUMBER(10);
|
|
|
|
BEGIN
|
|
SessionId := GetSessionId;
|
|
ReturnDate := NULL;
|
|
FOR SelectieRec IN Selectie
|
|
LOOP
|
|
ReturnDate := SelectieRec.fac_selectie_datum;
|
|
EXIT;
|
|
END LOOP;
|
|
RETURN ReturnDate;
|
|
END;
|
|
END fac_p_fac_save_restore;
|
|
/
|
|
|
|
#endif // FAC
|
|
|
|
#ifdef RES
|
|
|
|
ALTER TABLE res_alg_ruimte DROP CONSTRAINT res_u_alg_ruimte_key;
|
|
ALTER TABLE res_alg_ruimte ADD CONSTRAINT res_u_alg_ruimte_key
|
|
UNIQUE(res_ruimte_key, alg_ruimte_key,res_alg_ruimte_verwijder);
|
|
|
|
#endif // RES
|
|
|
|
#ifdef MLD
|
|
|
|
ALTER TABLE mld_stdmelding MODIFY (mld_stdmelding_uitvoertijd NUMBER(3));
|
|
|
|
#endif // MLD
|