VMS Help  —  RDBPRE72
    RDBPRE is a preprocessor for BASIC, COBOL, and FORTRAN programs
    that contain embedded RDO data manipulation statements. Each RDO
    statement is flagged by the special &RDB& flag.

    Because the RDBPRE preprocessor submits your source program to
    the appropriate host language compiler and creates an object
    file, you should never submit the output from the RDBPRE
    preprocessor to a host language compiler.

    When you create the source BASIC, COBOL, or FORTRAN program
    files, use the RDBPRE preprocessor default input file types.
    See the subtopic "Default_file_types" for a table that shows the
    RDBPRE default input file types and the output file types.

1  –  Default file types

                   RDBPRE          Preprocessor
                   Default Input   Output             List
    Language       File Type       Source File Type   File Type
    --------       -------------   ----------------   ---------

    BASIC          .RBA            .BAS               .LIS and
                                                      .RDBERR.LOG

    COBOL          .RCO            .COB               .LIS and
                                                      .RDBERR.LOG

    FORTRAN        .RFO            .FOR               .LIS and
                                                      .RDBERR.LOG

    The .LIS file is generated by the host language compiler, not by
    the RDBPRE preprocessor.

2  –  Precompiling

    Before you invoke the RDBPRE preprocessor, define the following
    symbol:

    $ RDBPRE :== $RDBPRE

    Invoke the preprocessor and specify a file name and the language.
    The following example shows how to preprocess the file COB_
    SAMPLE.RCO:

    $ RDBPRE
    INPUT FILE> COB_SAMPLE.RCO/COB

    You can use RDBPRE and host language compile qualifiers when you
    precompile a program.

2.1    /DISTRIBUTED_TRANSACTIONS

    Starts distributed transactions for those transactions that
    involve more than one attachment to a database. This qualifier
    starts the distributed transactions by calling DECdtm system
    services implicitly.

2.2    /[NO]INITIALIZE_HANDLES

    Instructs RDBPRE to generate code that automatically initializes
    the declared database and request handles generated by RDBPRE.
    This qualifier has no effect on whether or when handles are
    cleared in the generated code. It only controls initialization
    of handles in declarations. The /INITIALIZE_HANDLES qualifier is
    the default.

    The /NOINITIALIZE_HANDLES qualifier lets the shareable image
    and the program that calls it access the database. When you use
    the /NOINITIALIZE_HANDLES qualifier, any handle you specify in
    your application program must also be specified in the shareable
    image.

2.3    /MESSAGE_MAP

    This qualifier is for BASIC programs only. The /MESSAGE_MAP
    qualifier causes the precompiler to generate MAP (RDB$module-
    name_MAP) declarations instead of DECLARE declarations. If the
    application will be linked SHAREABLE, the PSECTS that the MAP
    declarations create will have to be made non-shareable before
    using this qualifier.

3  –  Linking

    You link the object files for RDBPRE RDO programs just as you
    would link any program object file. Invoke the OpenVMS Linker
    and specify one or more object file specifications and any link
    switches you want to use. The following example shows how to link
    all the modules of the program COB_SAMPLE.RCO:

    $ LINK COB_SAMPLE, COB_CALL_OTHER, COB_CALLABLE_ERROR_HANDLER

4  –  Query governor

    Using the Oracle Rdb query governor feature, you can specify the
    following for RDBPRE queries:

    o  The maximum elapsed time that the query optimizer can spend
       compiling a query

    o  The maximum number of rows delivered during query processing

    There is no RDBPRE interface for the query governor feature, but
    this feature can be enabled for RDBPRE queries by defining the
    RDMS$BIND_QC_REC_LIMIT and RDMS$BIND_QC_TIMEOUT logical names.
    See the top-level topic "Logical_Names" in the RDO interface help
    utility for information on how to define and set values for the
    RDMS$BIND_QC_REC_LIMIT and RDMS$BIND_QC_TIMEOUT logical names.
Close Help