HELPLIB.HLB  —  RDML72  Statements  COMMIT
    Ends a transaction and makes permanent all changes you made
    during that transaction.

1  –  Examples

    The following programs demonstrate the use of the commit
    statement to make permanent changes to a field value in a
    database. These programs:

    o  Use a record selection expression to find an employee in the
       EMPLOYEES relation with the ID number "00193"

    o  Use a MODIFY statement to change the field value of
       E.LAST_NAME for this employee

    Although this change is written to the database at the time of
    the MODIFY, the change is not permanent until the programs issue
    a COMMIT statement. After the programs issue the COMMIT statement
    the old value for E.LAST_NAME is not available.

    The C example uses the function pad_string to pad the name
    "Smith-Fields" with blanks. Blanks are appended to the name so
    that the length of the name matches the spaces reserved for it in
    the database definition for LAST_NAME.

1.1  –  C Example

    #include <stdio.h>
    DATABASE PERS = FILENAME "PERSONNEL";

    extern void pad_string();

    main()
    {
    READY PERS;
    START_TRANSACTION READ_WRITE;

    FOR E IN EMPLOYEES WITH E.EMPLOYEE_ID = '00193'
       MODIFY E USING
         pad_string ("Smith-Fields", E.LAST_NAME, sizeof(E.LAST_NAME));
       END_MODIFY;
    END_FOR;

    COMMIT;
    FINISH;
    }

1.2  –  Pascal Example

    program commit_changes (input,output);
    DATABASE PERS = FILENAME 'PERSONNEL';

    begin
    READY PERS;
    START_TRANSACTION READ_WRITE;

    FOR E IN EMPLOYEES WITH E.EMPLOYEE_ID = '00193'
       MODIFY E USING
          E.LAST_NAME := 'Smith-Fields';
       END_MODIFY;
    END_FOR;

    COMMIT;
    FINISH;
    end.

2  –  Format

  (B)0COMMIT  qqwqq>qqqqqqqqqqqqqqqqqq>qqqqqqqqqqqqqqqqqqqqqwk
            mqq> ( qq> TRANSACTION_HANDLE qq> var qq>) qjx
                                                         x
            lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
            x
            mqqqqqqqqqqqwqq>qqqqqqqqqqqqqqqwqqqqqqqqqqqqqq>
                        mqq>  on-error  qqqj

2.1  –  Format arguments

    TRANSACTION_HANDLE     The TRANSACTION_HANDLE keyword followed by
    var                    a host language variable. A transaction
                           handle identifies a transaction. If
                           you do not supply a transaction handle
                           explicitly, RDML uses the default
                           transaction handle.

    on-error               The ON ERROR clause. Specifies host
                           language statement(s) to be performed
                           if an error occurs during the COMMIT
                           operation. For more information see the
                           entry on ON ERROR.
Close Help