Package cad - procedure Postdraw aangepast.

svn path=/Database/trunk/; revision=6351
This commit is contained in:
Bert in het Veld
1998-11-06 14:49:20 +00:00
parent de0c42ab3c
commit bfc747e709

View File

@@ -3,6 +3,10 @@
/* REVISIONS:
*
*
* --- 01.42 ---
* 05-11-1998 BIV Procedure cad_SLNKSTRUCTclear toegevoegd.
* 02-11-1998 BIV Procedures cad_SLNKSTRUCTinsertVALINT,...VALSTR, ....VALREAL en ....VALDATE toegevoegd.
* --- 01.41 ---
* 06-10-1998 PF #2060 get_tekeningnaam werkt nu ook voor terreinen
* --- 01.40 ---
* --- 01.39 ---
@@ -28,7 +32,14 @@ CREATE OR REPLACE PACKAGE cad AS
FUNCTION cad_f_deel_get_tekeningnaam(key IN NUMBER) RETURN VARCHAR2;
FUNCTION cad_f_ruimte_get_tekeningnaam(key IN NUMBER) RETURN VARCHAR2;
PROCEDURE cad_p_ruimte_update_opp(key IN NUMBER, VloerOpp IN NUMBER);
PROCEDURE cad_SLNKSTRUCTinsertVALINT(entry VARCHAR2, seqnr NUMBER, waarde NUMBER);
PROCEDURE cad_SLNKSTRUCTinsertVALINT(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER);
PROCEDURE cad_SLNKSTRUCTinsertVALSTR(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value VARCHAR2);
PROCEDURE cad_SLNKSTRUCTinsertVALREAL(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER);
PROCEDURE cad_SLNKSTRUCTinsertVALDATE(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value DATE);
PROCEDURE cad_SLNKSTRUCTclear(Session_Id NUMBER);
-- FUNCTION cad_SLNKSTRUCTread(Session_Id NUMBER, entry VARCHAR2) RETURN NUMBER; werking is nog onduidelijk
PROCEDURE cad_SLNKSTRUCTshift(Session_Id NUMBER);
PROCEDURE cad_SLNKSTRUCTpostdraw(Session_Id NUMBER);
/* garandeer dat de functies de database-state en package-state niet beinvloeden
* (anders kunnen ze niet zondermeer in een view worden gebruikt)
@@ -173,15 +184,204 @@ CREATE OR REPLACE PACKAGE BODY cad AS
COMMIT;
END cad_p_ruimte_update_opp;
PROCEDURE cad_SLNKSTRUCTinsertVALINT(entry VARCHAR2, seqnr NUMBER, waarde NUMBER) IS
PROCEDURE cad_SLNKSTRUCTinsertVALINT(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER) IS
BEGIN
IF seqnr = 1 THEN
BEGIN
DELETE FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = entry;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END IF;
BEGIN
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valint)
VALUES(Session_Id, entry, seqnr, value);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END cad_SLNKSTRUCTinsertVALINT;
END cad_SLNKSTRUCTinsertVALINT
PROCEDURE cad_SLNKSTRUCTinsertVALSTR(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value VARCHAR2) IS
BEGIN
IF seqnr = 1 THEN
BEGIN
DELETE FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = entry;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END IF;
BEGIN
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valstr)
VALUES(Session_Id, entry, seqnr, value);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END cad_SLNKSTRUCTinsertVALSTR;
PROCEDURE cad_SLNKSTRUCTinsertVALREAL(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value NUMBER) IS
BEGIN
IF seqnr = 1 THEN
BEGIN
DELETE FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = entry;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END IF;
BEGIN
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valreal)
VALUES(Session_Id, entry, seqnr, value);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END cad_SLNKSTRUCTinsertVALREAL;
PROCEDURE cad_SLNKSTRUCTinsertVALDATE(Session_Id NUMBER, entry VARCHAR2, seqnr NUMBER, value DATE) IS
BEGIN
IF seqnr = 1 THEN
BEGIN
DELETE FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = entry;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END IF;
BEGIN
INSERT INTO cad_slnkstruct(cad_slnkstruct_sessionId, cad_slnkstruct_entry, cad_slnkstruct_seqnr, cad_slnkstruct_valdate)
VALUES(Session_Id, entry, seqnr, value);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END cad_SLNKSTRUCTinsertVALDATE;
PROCEDURE cad_SLNKSTRUCTclear(Session_Id NUMBER) IS
BEGIN
BEGIN
DELETE FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END cad_SLNKSTRUCTclear;
/* FUNCTION cad_SLNKSTRUCTread(Session_Id NUMBER, entry VARCHAR2) RETURN NUMBER;
Werking van deze functie is me nog niet helemaal duidelijk. Komt later.
*/
PROCEDURE cad_SLNKSTRUCTshift(Session_Id NUMBER) IS
aantal NUMBER(10);
BEGIN
BEGIN
SELECT max(cad_slnkstruct_seqnr) INTO aantal
FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id;
IF aantal > 1 THEN
DELETE FROM cad_slnkstruct
WHERE cad_slnkstruct_seqnr = 1
AND cad_slnkstruct_sessionid = Session_Id;
COMMIT;
UPDATE cad_slnkstruct
SET cad_slnkstruct_seqnr = cad_slnkstruct_seqnr - 1
WHERE cad_slnkstruct_sessionid = Session_Id;
COMMIT;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END cad_SLNKSTRUCTshift;
PROCEDURE cad_SLNKSTRUCTpostdraw(Session_Id NUMBER) IS
LPNName VARCHAR2(128);
LPNKey NUMBER(10);
VeldKey NUMBER(10);
Oppervlak NUMBER(13,3);
BEGIN
BEGIN
SELECT cad_slnkstruct_valstr INTO LPNName
FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = 'LPNALIASINSO'
AND cad_slnkstruct_seqnr = 1;
IF LPNName = 'LPN_BIS_BORING' THEN
SELECT cad_slnkstruct_valint INTO LPNKey
FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = 'LPNKEYINSO'
AND cad_slnkstruct_seqnr = 1;
UPDATE bis_boring
SET bis_boring_getekend = 'TRUE'
WHERE bis_boring_key = LPNKey;
/* als het een veld betreft dan oppervlakte aanpassen in tabel bis_veld */
SELECT bis_veld_key INTO VeldKey
FROM bis_boring_boringtype
WHERE bis_boring_key = LPNKey;
IF VeldKey IS NOT NULL THEN
/* lees oppervlakte uit */
SELECT cad_slnkstruct_valreal INTO Oppervlak
FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = 'AREA'
AND cad_slnkstruct_seqnr = 1;
UPDATE bis_veld
SET bis_veld_oppervlakte = Oppervlak
WHERE bis_veld_key = Veldkey;
END IF;
ELSIF LPNName = 'LPN_ALG_TERREINSECTOR' THEN
SELECT cad_slnkstruct_valint INTO LPNKey
FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = 'LPNKEYINSA'
AND cad_slnkstruct_seqnr = 1;
SELECT cad_slnkstruct_valreal INTO Oppervlak
FROM cad_slnkstruct
WHERE cad_slnkstruct_sessionid = Session_Id
AND cad_slnkstruct_entry = 'AREA'
AND cad_slnkstruct_seqnr = 1;
UPDATE alg_terreinsector
SET alg_terreinsector_oppervlak = Oppervlak
WHERE alg_terreinsector_key = LPNKey;
COMMIT;
ELSIF LPNName = 'LPN_BIS_PROJECT' THEN
NULL; /* moet nog uitgewerkt worden */
ELSIF LPNName = 'LPN_BIS_ONTGRAVINGSVAK' THEN
NULL; /* moet nog uitgewerkt worden */
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
cad_SLNKSTRUCTinsertVALSTR(Session_Id, 'SYNC', 1, 'ACAD'); /* ORACLE is klaar */
END cad_SLNKSTRUCTpostdraw;
END cad;
/