FSN#21030

svn path=/Database/trunk/; revision=10779
This commit is contained in:
Peter Feij
2011-07-20 08:47:56 +00:00
parent eaad847575
commit 378e0cbe89

View File

@@ -1,7 +1,7 @@
#ifdef PRS
/* PRS_TRI.SRC
* $Revision: 83 $
* $Modtime: 6-09-10 15:17 $
* $Revision: 84 $
* $Modtime: 12-07-11 17:04 $
*/
#include "alg\algsql.h"
@@ -325,80 +325,6 @@ BEGIN
END IF;
END;
/
CREATE_TRIGGER(prs_t_prs_refkenmerk_b_iu)
BEFORE INSERT OR UPDATE ON prs_refkenmerk
FOR EACH ROW
DECLARE
ObjectType USER_OBJECTS.OBJECT_TYPE%TYPE;
BEGIN
UPDATE_PRIMARY_KEY(prs_refkenmerk_key,prs_s_prs_refkenmerk_key);
UPDATE_UPPER(prs_refkenmerk_omschrijving,prs_refkenmerk_upper,prs_refkenmerk);
UPDATE_AANMAAKDATUM(prs_refkenmerk, prs_refkenmerk_aanmaak);
/* Controleer of de ingevulde tablenaam, kolomnaam en kolomtxt
** wel bestaan.
*/
/* Trigger moet ook afgaan als de omschrijving gewijzigd wordt ...
IF :new.prs_refkenmerk_objectnaam <> :old.prs_refkenmerk_objectnaam
OR :old.prs_refkenmerk_objectnaam IS NULL
THEN
*/
BEGIN
SELECT OBJECT_TYPE
INTO ObjectType
FROM USER_OBJECTS
WHERE OBJECT_NAME = :new.prs_refkenmerk_objectnaam;
EXCEPTION
WHEN NO_DATA_FOUND
THEN ObjectType := NULL;
END;
/* END IF; */
IF ObjectType IS NULL
THEN
APPLICATION_ERROR(-20000, 'ALG_M235');
ELSIF ObjectType IN ('TABLE','VIEW')
THEN
/* Bij een TABLE of VIEW staan de kolommen in USER_TAB_COLUMNS
** Controleer of deze KOLOMNAAM en KOLOMTXT bestaan.
**/
DECLARE
Dummy VARCHAR2(30);
BEGIN
SELECT COLUMN_NAME
INTO Dummy
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = :new.prs_refkenmerk_objectnaam
AND COLUMN_NAME = :new.prs_refkenmerk_kolomnaam
AND DATA_TYPE = 'NUMBER';
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000, 'ALG_M236');
END;
DECLARE
Dummy VARCHAR2(30);
BEGIN
SELECT COLUMN_NAME
INTO Dummy
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = :new.prs_refkenmerk_objectnaam
AND COLUMN_NAME = :new.prs_refkenmerk_kolomtxt
AND DATA_TYPE LIKE '%CHAR%';
EXCEPTION
WHEN NO_DATA_FOUND
THEN APPLICATION_ERROR(-20000, 'ALG_M237');
END;
ELSIF ObjectType <> 'SYNONYM'
THEN
/* Bij een SYNONYM kan er niet gecontroleerd worden
* of de ingevulde kolommen bestaan.
*/
/* NULL;
ELSE */
APPLICATION_ERROR(-20000, 'ALG_M235');
END IF;
END;
/
CREATE_TRIGGER(prs_t_prs_kenmerk_b_iu)
BEFORE INSERT OR UPDATE ON prs_kenmerk
@@ -406,7 +332,7 @@ FOR EACH ROW
BEGIN
UPDATE_PRIMARY_KEY(prs_kenmerk_key, prs_s_prs_kenmerk_key);
UPDATE_UPPER(prs_kenmerk_omschrijving, prs_kenmerk_upper,prs_kenmerk);
IF (:new.prs_kenmerk_verwijder IS NOT NULL AND :old.prs_kenmerk_verwijder IS NULL AND
IF (:new.prs_kenmerk_verwijder IS NOT NULL AND :old.prs_kenmerk_verwijder IS NULL AND
:new.prs_kenmerk_systeem = 1)
THEN
APPLICATION_ERROR(-20003, 'ALG_M238');
@@ -782,6 +708,6 @@ BEGIN
END;
/
REGISTERRUN('$Workfile: PRS_TRI.SRC $','$Revision: 83 $')
REGISTERRUN('$Workfile: PRS_TRI.SRC $','$Revision: 84 $')
#endif