FSN#21030
svn path=/Database/trunk/; revision=10779
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user