I have two programs calling API QMHRCVPM to get the calling program
name.
Program 1 returns the correct calling program name and program 2
returns IBM's system supplied update routine program QDBUDR.
Any ideas?
Much appreciated.
Eve
Printable View
I have two programs calling API QMHRCVPM to get the calling program
name.
Program 1 returns the correct calling program name and program 2
returns IBM's system supplied update routine program QDBUDR.
Any ideas?
Much appreciated.
Eve
Hi,
QDBUDR gets called from the database manager as soon as an Update,
Delete or Read (=UDR) trigger gets activated. This program calls the
trigger program bound to the table that will be changed.
If you want to get the program that updates or deletes the row that
causes the trigger to be executed, you simple have to go one step back
in the callstack, i.e. you have to determine the program that calls
the trigger.
BTW when executing an insert trigger the database manager calls the
routine QDBPUT, that itself calls the trigger program.
Birgitta
The QDBUDR is not called for a read trigger. The program name is 'Q' to denote owned by the OS, DB to denote the component DataBase, the 'U' to denote Update, the 'D' to denote Delete. The 'R' in QDBUDR however, stands for 'record' [or 'row']. IIRC the read trigger is invoked by either of QDBGETSQ or QDBGETKY.