IBM Support

II08058: CHANGES TO DB2 APPLICATION PROGRAMMING & SQL GUIDE SC26-4889-00 THAT DID NOT MAKE VERSION 3 GA PUBS. CONTINUATION OF II07606.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as canceled.

Error description

  • This info. APAR documents changes to the DB2 Application
    Programming & SQL Guide SC26-4889-00 which did not make the GA
    pubs.  This is a continuation of II07606.
    5740xyr00 R310
    ================================================================
    Version 3 Book Title: DB2 Application Prog. and SQL Guide
    Pages: 3-8 and 3-44
    Change Description:
    
    On page 3-8 under "Using Host Variables"
    after paragraph 1, add:
    
      "In your application program written in the language
      of your choice, the host variable declaration should
      as close as possible match the types of the associated
      data in the data base to get the best performance.
      For more performance suggestions, see 'chapter 5-3'
      and 'PMTG'."
    
    Change the entries in columns 2 and 3 of Table 9, for the
    SQL data type DECIMAL(p,s) or NUMERIC(p,s), to read as
    follows:
    
      Assembler Equivalent:
    
      DS PLn'value'
      DS P'value'
      DS PLn
    
      Notes:
    
      p is precision; s is scale.  1<=p<=31 and 0<=s<=p.
      1<=n<=16.  'value' is a literal value that includes
      a decimal point.
    
      You must use Ln, 'value', or both.
      If you use only 'value', which we recommend,
      the precision is the number of digits in 'value'.
      If you use Ln alone or with 'value', the precision
      is 2n-1; do not use Ln if p is even.
      The scale is the number of digits to the right of
      the decimal point in 'value'.
      If you do not use 'value', the scale is 0.
    
      FOR EFFICIENT USE OF INDEXES:  If p is even, do not
      use Ln.  If you do not use Ln, choose 'value' so
      that the precision is p and the scale is s.
      If p is odd, you can use Ln (although it is not
      advised), but you must choose n so that 2n-1=p
      and 'value' so that scale is s.
    ================================================================
    Version 3 Book Title:  Application Programming and SQL Guide
    Pages: 3-26
    Change Description:
    Change the first two sentences in the CICS specific box
    FROM:
     In CICS applications that are not pseudo-conversational,
     you can use DECLARE CURSOR...WITH HOLD to indicate that a
     cursor is not to be closed at a commit or sync point.
     However, all cursors are always closed at end-of-task
     (EOT) and on SYNCPOINT ROLLBACK.
    TO:
     In CICS applications, you can use DECLARE CURSOR...WITH
     HOLD to indicate that a cursor should not close at a commit
     or sync point.  However, SYNCPOINT ROLLBACK closes all
     cursors, and end-of-task (EOT) closes all cursors before
     DB2 reuses or terminates the thread.
    Add to the end of the paragraph in the box:
     You should always close cursors that you no longer need.
     If you let DB2 close a CICS attachment cursor, the cursor
     might not close until DB2 reuses or terminates the thread.
    ================================================================
    Version 3 Book Title:  DB2 Application Prog. and SQL Guide
    Pages: 3-29
    Change Description:
    
       The example used for FIELD NAME PREFIX will use
       ABCDE1 instead of ABCDE001, and ABCDE2 instead of
       ABCDE002.  This will match the example in the
       Command And Utility Reference on page 77 under
       NAMES(prefix) field.
    ================================================================
    Version 3 Book Title: Application Programming and SQL Guide
    Pages: 3-66
    Change Description:
    
    Add to the bulleted list at the bottom of the page:
    
    o  An SQL statement within an included member
    
    In Version 3, change the paragraph before the bulleted
    list to be the same as the Version 2.3 book, which is:
    
     A host structure is complete if it contains one of the
     following.  The precompiler does not recognize host
     variables or host structures on any subordinate
     levels after one of these items:
    ================================================================
    Version 3 Book Title: Application Programming and SQL Guide
    Pages:  4-10
    Change Description:
    
    Add the following paragraph on p.4-10 under the heading
    "Automatic Rebinding" before the paragraph that begins "For
    some changes, you must initiate...":
    
      If you encounter lock contention during an automatic
      rebind, DSNT501I messages do not accompany any DSNT376I
      messages that appear.  To see the matching DSNT501I
      messages, you must explicitly rebind the plan or package.
    ================================================================
    Version 3 Book Title:  DB2 Application Prog. andSQL Guide
    Pages:  4-50
    Change Description:
    
    Replace section "How to Prevent Block Fetching" with the
    following:
    
    "To prevent block fetching for a distributed cursor, you
    should use one of these methods:
    
    o  Declare the cursor with the clause FOR UPDATE OF.  This
       is the simplest method.
    
    o  In the package or plan containing the cursor where you
       prefer to fetch single rows, do the following steps:
    
       1.  Bind the package or plan with the option
           CURRENTDATA(YES).
    
       2.  Declare one dynamic statement in the package or plan.
    
       3.  Make the non-blocking cursor ambiguous.
           A cursor is ambiguous if all of the following are
           true:
    
           -- It is not declared with either of the
              clauses FOR FETCH ONLY or FOR UPDATE OF.
           -- It is not the target of the clause WHERE CURRENT
              OF on an UPDATE or DELETE statement.
           -- The package processes dynamic SQL statements.
    
           All other cursors are non-ambiguous.
    
       4.  Remove anything that indicates the result table
           of the cursor is read-only.
           The result table is read-only if one or more of the
           following statements is true about the SELECT
           statement of the cursor:
    
           -- The first FROM clause identifies more than one
              table or view
           -- The first SELECT clause specifies the keyword
              DISTINCT
           -- The outer subselect contains a GROUP BY clause
           -- The outer subselect contains a HAVING clause
           -- The first SELECT clause contains a column function
           -- It contains a subquery such that the base object
              of the outer subselect, and of the subquery, is
              the same table
           -- The first FROM clause identifies a read-only view
           -- The first FROM clause identifies a catalog table
              with no updateable columns
           -- A UNION or UNION ALL operator is present
           -- An ORDER BY clause is present
           -- A FOR FETCH ONLY clause is present.
    
    o  Use a 3-part name (system-directed access) and the clause
       OPTIMIZE FOR N ROWS in the SELECT statement.
       DB2 returns the specified n
       rows and does not perform block fetching.  But if you
       fetch beyond n rows, DB2 reverts to block fetching.
    ================================================================
    Version 3 Book Title:  DB2 Application Prgmg and SQL Guide
    Page:  4-78
    Change Description:
    
    Add the following paragraph at the end of the section titled
    "Running a Program in TSO Foreground":
    
    DSN RETURN CODE PROCESSING: At the end of a DSN session,
    register 15 contains the highest value placed there by any
    DSN subcommand used in the session or by any program run by
    the RUN subcommand.  Your run-time environment might format
    that value as a return code.  The value DOES NOT, however,
    originate in DSN.
    ================================================================
    Book Title: Application Programming and SQL Guide
    Page Number: p. 4-87
    Change Description:
    
    In the description of the DATA SET NAME QUALIFIER field of the
    DB2 Program Preparation Panel, change the description to:
    
    2 DATA SET NAME QUALIFIER
    
    Allows you to specify temporary data sets involved in the
    program preparation process. (This field is not changed.)
    
    For programs that are prepared in the background or use the
    EDITJCL PREPARATION ENVIRONMENT option, a data set named
    tsoprefix.qualifier.CNTL is created to contain the program
    preparation JCL. tsoprefix represents the prefix TSO assigns,
    and qualifier represents the value entered in the DATA SET NAME
    QUALIFIER field. If a data set with this name already exists,
    then it is deleted.
    ================================================================
    Book Title: Application Programming and SQL Guide
    Page Number: p. 4-94
    Change Description:
    
    In the box, change the description to:
    
    IMS and TSO
    
    For IMS and TSO programs, the precompiled source statements (to
    be passed to the compile or assemble step) are stored in a data
    set named tsoprefix.qualifier.suffix. The precompiler print
    listing is stored in a data set named
    tsoprefix.qualifier.PCLIST.
    
    
    For programs that are prepared in the background or use the
    EDITJCL PREPARATION ENVIRONMENT option (on the DB2 Program
    Preparation panel) a data set named
    tsoprefix.qualifier.CNTL is created to contain the
    program preparation JCL.
    
    In these examples, tsoprefix represents the prefix TSO assigns,
    often the same as the authorization ID; qualifier represents the
    value entered in the DSNAME QUALIFIER field; suffix represents
    the output name, which is one of the following: COBOL, FORTRAN,
    C, PLI, ASM, DECK, CICSIN, OBJ, or DATA. In the example in
    Figure 35, the precompiled source statements are sent to
    tsoprefix.TEMP.COBOL and the precompiler print listing is stored
    in a data set named tsoprefix.TEMP.PCLIST.
    
    If data sets with these names already exist, then they are
    deleted.
    ================================================================
    Version 3 Book Title:  DB2 Applicaton Programming and SQL
    Guide,  Pages:  4-134
    Change Description:
    
    In the example, in the line after the DD statement for
    G.DDITV02, change DB2X to SSDQ.
    ================================================================
    Version 3 Book Title:  DB2 Applicaton Programming and SQL
    Guide,  Pages:  4-135
    Change Description:
    
    In the example, in the second line of the statement //BATCH,
    remove the parameter DB2=DB2A, so that the line reads as
    follows:
    
       //       BKO=Y,DBRC=N,IRLM=N,SSM=SSDQ
    ================================================================
    Book Title: Application Programming and SQL Guide
    Page Number: p. X-32
    Change Description:
    
    Change RECORD CONTAINS 32704 CHARACTERS in the second line of
    the figure:
    
    Called Program that does Pointer Manipulation (Part 4 of 10)
    
    FD  SYSREC01
            RECORD CONTAINS 5 TO 32704 CHARACTERS
            LABEL RECORDS ARE OMITTED
            DATA RECORD IS REC01
            RECORDING MODE IS V.
    01  REC01.
             02 REC01-LEN PIC S9(8) COMP.
             02 REC01-CHAR PIC X(1) OCCURS 1 TO 32700 TIMES
                            DEPENDING ON REC01-LEN.
    /
    WORKING-STORAGE SECTION.
    .
    .
    .
    ================================================================
    

Local fix

Problem summary

Problem conclusion

Temporary fix

Comments

  • close for internet viewing
    

APAR Information

  • APAR number

    II08058

  • Reported component name

    PB LIB INFO ITE

  • Reported component ID

    INFOPBLIB

  • Reported release

    001

  • Status

    CLOSED CAN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    1994-07-19

  • Closed date

    1997-10-24

  • Last modified date

    1997-10-24

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

[{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
14 December 2020