Files
Database/ALG/ALGSQL.H
Jos Groot Lipman 7a51ca7330 FCLT#90263 Opschonen sourcecode
svn path=/Database/trunk/; revision=70000
2025-08-13 16:07:04 +00:00

53 lines
3.3 KiB
C

/* SET_DWGUPTODATE: set de dwg_uptodate-velden op SYSDATE van de records die
* nog niet een waarde hebben.
* TRICKY: er wordt ipv. '=' 'IN' gebruikt, omdat reference_key meestal
* een SELECT-statement is en IN gelijk is aan = voor een keiharde waarde.
*
* History:
*/
#define SET_VERWIJDER_CHILDREN_DEEL(child_table, parent_key, parent_verwijder, \
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL OR \
(:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL) \
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND ins_alg_ruimte_type NOT IN ('W','T'); \
END IF; \
END
#define SET_VERWIJDER_CHILDREN_DEELT(child_table, parent_key, parent_verwijder, \
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL OR \
(:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL) \
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND ins_alg_ruimte_type = 'T';\
END IF; \
END
#define SET_VERWIJDER_CHILDREN_DEELWP(child_table, parent_key, parent_verwijder, \
dummy1, child_verwijder, child_key, dummy2) \
BEGIN \
IF :new.parent_verwijder IS NOT NULL \
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND child_table.ins_alg_ruimte_type = 'W' \
AND child_table.ins_deel_verwijder IS NULL; \
ELSIF (:new.parent_verwijder IS NULL AND :old.parent_verwijder IS NOT NULL)\
THEN \
UPDATE child_table \
SET child_verwijder = :new.parent_verwijder \
WHERE child_table.child_key = :new.parent_key \
AND ins_alg_ruimte_type = 'W'; \
END_IF; \
END