QMHRCVPM / QDBUDR - IBM AS400

This is a discussion on QMHRCVPM / QDBUDR - IBM AS400 ; 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...

+ Reply to Thread
Results 1 to 3 of 3

Thread: QMHRCVPM / QDBUDR

  1. QMHRCVPM / QDBUDR

    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


  2. Re: QMHRCVPM / QDBUDR

    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


  3. Re: QMHRCVPM / QDBUDR

    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.

+ Reply to Thread