Library /sys$common/syshlp/HELPLIB.HLB  —  RDML72  Statements  Host Variable
    Use a host variable value expression to pass data between a
    calling program and Oracle Rdb. A host variable is a program
    variable.

1  –  Examples

    The following programs demonstrate the use of the
    DECLARE_VARIABLE clause to declare a program variable. These
    programs:

    o  Declare the variable, badge, to have the same data type and
       size attributes as EMPLOYEE_ID in the EMPLOYEES relation.

    o  Use this variable for interactive processing. Note that the
       interactive portion of the programs appear before the READY
       statement. This keeps locks on the database to a minimum.

    o  Select the record from the EMPLOYEES relation that has the
       same value for EMPLOYEE_ID as is stored in badge.

    o  Modify the STATUS_CODE field of this record.

    Note that the C program uses the read_string function to prompt
    for and receive a value for badge. For more information on this
    function see Appendix B of the "RDML Reference Manual".

1.1  –  C Example

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

    extern void read_string();
    static DECLARE_VARIABLE badge SAME AS EMPLOYEES.EMPLOYEE_ID;

    main()
    {
    read_string ("Employee ID: ", badge, sizeof(badge));

    READY PERS;
    START_TRANSACTION READ_WRITE;

    FOR E IN EMPLOYEES WITH E.EMPLOYEE_ID = badge
       MODIFY E USING
          strcpy(E.STATUS_CODE,"1");
       END_MODIFY;
    END_FOR;

    ROLLBACK;
    FINISH;
    }

1.2  –  Pascal Example

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

    var
       DECLARE_VARIABLE badge SAME AS EMPLOYEES.EMPLOYEE_ID;

    begin
    write  ('Employee ID: ');
    readln (badge);

    READY PERS;
    START_TRANSACTION READ_WRITE;

    FOR E IN EMPLOYEES WITH E.EMPLOYEE_ID = badge
        MODIFY E USING
            E.STATUS_CODE := '1';
        END_MODIFY;
    END_FOR;

    ROLLBACK;
    FINISH;
    end.

2  –  Format

  (B)0C-host-variable =

  VMS-name qwqqqqqqwwwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwq>
            mq> * qjxtqqq>  .   qqq>  field-identifier  qqqqqux
                    xx                                       xx
                    xtqqq>  [  qwq>  expression qwqq>  ]  qqqux
                    xx          mqqqqqqq , <qqqqqj           xx
                    xx                                       xx
                    xmqqq>  "->"  qqqq> field-identifier qqqqjx
                    mqqqqqqqq<qqqqqqqqqqqqqqqqqqqqqqqqq<qqqqqqj

    The C pointer operator is shown in quotes to distinguish it from
    the arrows that show the logical flow of the syntax. Do not use
    quotes around the pointer operator in your programs.

  (B)0Pascal-host-variable =

  VMS-name qwqqwqqqqqqqqqqqqqqqqqqq>qqqqqqqqqqqqqqqqqqqqqwqqwqqq>
            x  tqqq>  .  qqq>  field-identifier  qqqqqqqqu  x
            x  x                                         x  x
            x  tqqq>  [  qwq>  expression  qqqwqq>  ]  qqu  x
            x  x          mqqqqqqqq  ,  <qqqqqj          x  x
            x  x                                         x  x
            x  mqqq>  ^  qwqqqqqqqqqqqqq>qqqqqqqqqwqqqqqqj  x
            x             mq>  field-identifier qqj         x
            x                                               x
            mqqqqqqqqqq<qqqqqqqqqqqqqqqqqqqqqqqq<qqqqqqqqqqqj

2.1  –  Format arguments

    VMS-name               A valid OpenVMS name.

    field-indentifier      A valid host language field identifier.

    expression             An expression that evaluates to a valid
                           host language array element.

    "->"                   The C pointer symbol. It is shown in
                           quotes to distinguish it from the arrows
                           that show the logical flow of the syntax.
                           Do not use quotes around the pointer
                           symbol in your program.
Close Help