Data Definition Language (DDL) Reference Manual Abstract This publication describes the DDL language syntax and the DDL dictionary database. The audience includes application programmers and database administrators. Product Version DDL D40 DDL H01 Supported Release Version Updates (RVUs) This publication supports J06.03 and all subsequent J-series RVUs, H06.03 and all subsequent H-series RVUs, and G06.26 and all subsequent G-series RVUs, until otherwise indicated by its replacement publications.
Document History Part Number Product Version Published 529431-002 DDL D40, DDL H01 July 2005 529431-003 DDL D40, DDL H01 May 2010 529431-004 DDL D40, DDL H01 May 2014
Legal Notices © Copyright 2014 Hewlett-Packard Development Company L.P. Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice.
Data Definition Language (DDL) Reference Manual Glossary Index Examples Figures Legal Notices What’s New in This Manual xix Manual Information xix New and Changed Information xix About This Manual xxi Audience xxii Prerequisite Manuals xxii Related Manuals xxiii Notation Conventions xxiii 1.
Contents 2. DDL Language Elements (continued) 2. DDL Language Elements (continued) Reserved Words 2-11 Special Characters 2-12 Comments 2-12 Dictionary Comments 2-13 Compiler Listing Comments 2-15 Statements 2-16 Commands 2-18 3. Running the DDL Compiler RUN DDL Command 3-1 Running the DDL Compiler Noninteractively 3-3 Running the DDL Compiler Interactively 3-4 Completion Codes 3-5 4.
Contents 5. Definitions and Records (continued) 5. Definitions and Records (continued) Record Reference Syntax 5-16 Key Assignment Syntax 5-17 Error Handling 5-18 Examples 5-19 Syntax Elements 5-21 Clauses 5-21 Other Elements 5-23 6.
Contents 6. Definition Attributes (continued) 6. Definition Attributes (continued) SPI-NULL 6-37 SQLNULLABLE 6-39 TACL 6-44 TYPE 6-48 Specifying TYPE data-type Specifying TYPE def-name Specifying TYPE * 6-67 UPSHIFT 6-69 USAGE 6-70 VALUE 6-75 66 RENAMES 6-79 88 Condition-Name 6-81 89 Enumeration 6-84 6-51 6-66 7.
Contents 9. DDL Compiler Commands (continued) 9.
Contents 9. DDL Compiler Commands (continued) 9.
Contents 10. Dictionary Maintenance (continued) 10. Dictionary Maintenance (continued) Making Major Modifications 10-13 Changing Dictionary Security 10-14 Moving a Dictionary 10-14 Moving a Nonaudited Dictionary 10-15 Moving an Audited Dictionary 10-16 Purging a Dictionary 10-18 Increasing Dictionary File Size 10-19 Rebuilding a Dictionary 10-20 Rebuilding a Nonaudited Dictionary 10-20 Rebuilding an Audited Dictionary 10-21 Converting a Dictionary 10-22 A. DDL Messages B.
Contents D. Dictionary Database Structure (continued) D.
Contents F. Syntax Summary (continued) F.
Contents Glossary Glossary Index Examples Example 2-1. Example 2-2. Example 2-3. Example 2-4. Example 2-5. Example 2-6. Example 2-7. Example 2-8. Example 3-1. Example 3-2. Example 3-3. Example 3-4. Example 4-1. Example 4-2. Example 4-3. Example 4-4. Example 4-5. Example 5-1. Example 5-2. Example 5-3. Example 5-4. Example 5-5. Example 5-6. Example 5-7. Example 5-8. Example 6-1. Example 6-2. Example 6-3. Example 6-4. Example 6-5. Example 6-6. Example 6-7. Example 6-8.
Contents Examples (continued) Examples (continued) Example 6-9. Example 6-10. Example 6-11. Example 6-12. Example 6-13. Example 6-14. Example 6-15. Example 6-16. Example 6-17. Example 6-18. Example 6-19. Example 6-20. Example 6-21. Example 6-22. Example 6-23. Example 6-24. Example 6-25. Example 6-26. Example 6-27. Example 6-28. Example 6-29. Example 6-30. Example 6-31. Example 6-32. Example 6-33. Example 6-34. Example 6-35. Example 6-36. Example 6-37. Example 6-38. Example 6-39. Example 6-40.
Contents Examples (continued) Examples (continued) Example 6-46. Example 6-47. Example 6-48. Example 6-49. Example 6-50. Example 6-51. Example 6-52. Example 6-53. Example 6-54. Example 6-55. Example 6-56. Example 6-57. Example 6-58. Example 6-59. Example 6-60. Example 6-61. Example 6-62. Example 6-63. Example 6-64. Example 6-65. Example 6-66. Example 6-67. Example 6-68. Example 6-69. Example 6-70. Example 6-71. Example 6-72. Example 6-73. Example 6-74. Example 6-75. Example 7-1. Example 7-2. Example 7-3.
Contents Examples (continued) Examples (continued) Example 7-7. Example 7-8. Example 7-9. Example 7-10. Example 7-11. Example 7-12. Example 7-13. Example 7-14. Example 7-15. Example 7-16. Example 7-17. Example 7-18. Example 7-19. Example 7-20. Example 7-21. Example 7-22. Example 7-23. Example 7-24. Example 7-25. Example 7-26. Example 8-1. Example 8-2. Example 8-3. Example 8-4. Example 8-5. Example 8-6. Example 8-7. Example 8-8. Example 8-9. Example 8-10. Example 8-11. Example 8-12. Example 8-13.
Contents Examples (continued) Examples (continued) Example 9-2. Example 9-3. Example 9-4. Example 9-5. Example 9-6. Example 9-7. Example 9-8. Example 9-9. Example 9-10. Example 9-11. Example 9-12. Example 9-13. Example 9-14. Example 9-15. Example 9-16. Example 9-17. Example 9-18. Example 9-19. Example 9-20. Example 9-21. Example 9-22. Example 9-23. Example 9-24. Example 9-25. Example 9-26. Example 9-27. Example 9-28. Example 9-29. Example 9-30. Example 9-31. Example 9-32. Example 9-33. Example 9-34.
Contents Examples (continued) Example 9-39. OLDFUP_FILEFORMAT Command 9-80 Examples (continued) Example 9-40. Example 9-41. Example 9-42. Example 9-43. Example 9-44. Example 9-45. Example 9-46. Example 9-47. Example 9-48. Example 9-49. Example 9-50. Example 9-51. Example 9-52. Example 9-53. Example 9-54. Example 9-55. Example 9-56. Example 9-57. Example 9-58. Example 9-59. Example 9-60. Example 9-61. Example 9-62. Example 9-63. Example 10-1. Example 10-2. Example 10-3. Example 10-4. Example 10-5.
Contents Examples (continued) Example 10-13. Listing and Purging Dictionary Files 10-18 Example 10-14. Purging Dictionary Files With the NOSAVE Command 10-18 Examples (continued) Example 10-15. Example 10-16. Example 10-17. Example 10-18. Increasing a Dictionary’s File Size 10-20 Rebuilding a Nonaudited Dictionary 10-21 Determining If a Dictionary is Audited 10-21 Converting a Dictionary From One Product Version to Another 10-23 Example 10-19. Changing a Dictionary Description 10-23 Example B-1.
Contents Figures (continued) Figure D-10. DICTOBL (Object Build List)—H-Series D-21 Figure D-11. DICTODF (Object Definition File)—G-Series D-37 Figures (continued) Figure D-12. Figure D-13. Figure D-14. Figure D-15. Figure D-16. Figure D-17. Figure D-18. Figure D-19. Figure D-20. Figure D-21. Figure D-22. Figure D-23. Figure D-24. Figure D-25. Figure E-1. Figure E-2.
Contents Table 9-3. Table 9-4. Tables (continued) C Source Output Commands 9-2 COBOL Source Output Commands 9-3 Tables (continued) Table 9-5. Table 9-6. Table 9-7. Table 9-8. Table 9-9. Table 9-10. Table 9-11. Table 9-12. Table 10-1. Table A-1. Table C-1. Table C-2. Table C-3. Table C-4. Table C-5. Table C-6. Table D-1. Table D-2. Table D-3. Table D-4. Table D-5. Table D-6. Table D-7. Table D-8. Table D-9. Table D-10. Table D-11. Table D-12. Table D-13. Table D-14. Table D-15. Table D-16. Table D-17.
Contents Table D-20. Table D-21. Table D-22. Tables (continued) DICTRDF (Record Definition File) Fields FILE-TYPE Codes D-55 FILE-DURATION Values D-55 D-53 Tables (continued) Table D-23. Table D-24. Table D-25. Table D-26. Table E-1. Table G-1.
What’s New in This Manual Manual Information Data Definition Language (DDL) Reference Manual Abstract This publication describes the DDL language syntax and the DDL dictionary database. The audience includes application programmers and database administrators. Product Version DDL D40 DDL H01 Supported Release Version Updates (RVUs) This publication supports J06.03 and all subsequent J-series RVUs, H06.03 and all subsequent H-series RVUs, and G06.
What’s New in This Manual Changes to the 529431-003 manual: • Updated information on the default value of the primary extent-size file attribute in pri-extent-size on page 5-14. • Updated information on the allowed maximum record length in Record Structure Syntax on page 5-15. • Updated information on the allowed maximum length for the key-sequenced file to 27648 in National Data Items on page 6-28, COBOL on page 6-29, and pTAL and TAL on page 6-30.
What’s New in This Manual Changes to the 529431-001 manual Changes to the 529431-001 manual This is a new manual.
About This Manual This manual describes the Data Definition Language (DDL), an HP product for defining data objects and for translating object definitions to source code for programming languages and for other products on HP NonStop™ systems.
About This Manual • • • Audience Prerequisite Manuals on page xxiv Related Manuals on page xxv Notation Conventions on page xxv Audience This manual is for application programmers and database administrators.
About This Manual ° ° ° ° ° Related Manuals NET/MASTER Network Control Language (NCL) Reference Manual Pascal Reference Manual (D-series systems only) pTAL Reference Manual TACL Reference Manual TAL Reference Manual If you plan to use DDL to define SPI tokens: • • • Distributed Name Service (DNS) Management Programming Manual DSM Template Services Manual SPI Programming Manual Related Manuals In addition to some of the prerequisite manuals, this manual refers to information in these HP manuals: • •
About This Manual Hypertext Links Hypertext Links Blue underline is used to indicate a hypertext link within text. By clicking a passage of text with a blue underline, you are taken to the location described. For example: This requirement is described under Backup DAM Volumes and Physical Disk Drives on page 3-2. General Syntax Notation This list summarizes the notation conventions for syntax presentation in this manual. UPPERCASE LETTERS. Uppercase letters indicate keywords and reserved words.
About This Manual General Syntax Notation braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines. For example: LISTOPENS PROCESS { $appl-mgr-name } { $process-name } ALLOWSU { ON | OFF } | Vertical Line. A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces. For example: INSPECT { OFF | ON | SAVEABEND } … Ellipsis.
About This Manual Notation for Messages !i and !o. In procedure calls, the !i notation follows an input parameter (one that passes data to the called procedure); the !o notation follows an output parameter (one that returns data to the calling program). For example: CALL CHECKRESIZESEGMENT ( segment-id , error ) ; !i !o !i,o. In procedure calls, the !i,o notation follows an input/output parameter (one that both passes data to the called procedure and returns data to the calling program).
About This Manual Notation for Management Programming Interfaces [ ] Brackets. Brackets enclose items that are sometimes, but not always, displayed. For example: Event number = number [ Subject = first-subject-value ] A group of items enclosed in brackets is a list of all possible items that can be displayed, of which one or none might actually be displayed.
About This Manual Change Bar Notation lowercase letters. Words in lowercase letters are words that are part of the notation, including DDL keywords. For example: token-type !r. The !r notation following a token or field name indicates that the token or field is required. For example: ZCOM-TKN-OBJNAME !o. token-type ZSPI-TYP-STRING. !r The !o notation following a token or field name indicates that the token or field is optional. For example: ZSPI-TKN-MANAGER token-type ZSPI-TYP-FNAME32.
1 Introduction to DDL The Data Definition Language (DDL) enables you to define data objects in Enscribe files and to translate these object definitions to source code for programming languages and other HP products. The DDL language has statements to define data objects and commands to control how the statements are compiled.
Introduction to DDL SPR Requirements for Increased Enscribe Limits for the H06.28/J06.17 Release Topics: • • • • • • • Compiling and Translating Data Definitions on page 1-3 Using DDL Definitions on page 1-4 Creating a Dictionary on page 1-5 Creating a Database on page 1-7 Generating Source Code on page 1-9 Maintaining a Dictionary on page 1-12 Examining a Dictionary on page 1-14 SPR Requirements for Increased Enscribe Limits for the H06.28/J06.17 Release As of H06.28 and J06.
Introduction to DDL Compiling and Translating Data Definitions Products J-Series SPR H-Series SPR SQLMP T9191J01^ACY T9195J01^AES T9197J01^AEA T9191H01^ACX T9195H01^AER T9197H01^ADZ TCP/IP FTP T9552H02^AET T9552H02^AET TNS/E COBOL Runtime Library T0357H01^AAO T0357H01^AAO Compiling and Translating Data Definitions The main functions of the DDL compiler are: • • Compiling statements that define data objects Translating compiled definitions to source code for host languages and FUP Note.
Introduction to DDL Using DDL Definitions Figure 1-1. DDL Compiler Overview FUP Dictionary Source File DDL Compiler Output Generator TAL FORTRAN Pascal COBOL TACL C 5> DDL Listing Report DDL VST001.vsd Using DDL Definitions You use DDL statements to define, modify, delete, and display data in a dictionary. You use DDL commands to create and open DDL dictionaries and to generate files containing FUP commands, data definition source code in different languages, and report specifications.
Introduction to DDL Creating a Dictionary You can direct the DDL compiler to translate the DDL object definitions from a schema or dictionary to C, COBOL, FORTRAN, Pascal (on D-series systems), pTAL, TACL, or TAL source code and to write the code to an EDIT file (called a source code file). You can edit this code, if needed, and then add it to your application program. • Create messages You can use DDL to define messages for interprocess communication and store the message definitions in a dictionary.
Introduction to DDL Creating a Dictionary Both Pathmaker dictionaries and dictionaries created from the DDL compiler can be written to by more than one user at the same time. Once a dictionary is created, you can enter object definitions in it. If you have a lot of complex definitions, you probably want to present them in a schema file rather than entering them interactively.
Introduction to DDL Creating a Database Figure 1-2. Creating a Dictionary Build schema in EDIT file 1 10> TEDIT schema DEF. . . . . . RECORD. . . . . 2 PS TEXT EDIT Source Schema Compile schema and create dictionary 11> DDL / IN schema / DICT or DDL Dictionary 11> DDL DICT !?OUT $S.#printer !?SOURCE schema !EXIT Schema Listing VST002.vsd Creating a Database You use DDL RECORD statements to define database files.
Introduction to DDL Creating a Database the FUP program and its commands, see the File Utility Program (FUP) Reference Manual. You can also generate FUP file-creation commands from records previously stored in a dictionary. To do this, open the dictionary and a FUP file, and use an OUTPUT statement to select record definitions from the dictionary for translation to FUP file creation commands.
Introduction to DDL Generating Source Code Figure 1-3. Creating Database Files 1 Generate FUP command file from dictionary 12> DDL DICT !?FUP fupfile !OUTPUT RECORD *. !EXIT 2 Edit FUP command file. (optional step) 13> TEDIT fupfile . . . 3 Create database files Dictionary DDL FUP Command File PS TEXT EDIT Edited FUP Command File Database 14> FUP / IN fupfile / FUP VST003.
Introduction to DDL Generating Source Code C, COBOL, FORTRAN, Pascal (on D-series systems), pTAL, TACL, or TAL commands in the schema. When the DDL compiler compiles the schema, it opens a file for each specified language, translates the subsequent object definition statements to source code for those languages, and writes the code to the language files. You can also generate source code from an existing dictionary. To do this, you can add a language command to your schema and recompile the entire schema.
Introduction to DDL Generating Source Code Figure 1-4. Generating Source Code ? DICT ? COBOL cobfile DEF . . . . . . RECORD . . . Source Schema 1 Generate source code (entire schema) DDL 15> DDL / IN schema / COBOL Source Code Dictionary Dictionary 2 Generate source code (selected records and definitions) 16> DDL DICT !?COBOL cobfile !OUTPUT RECORD rec1 rec2. !OUTPUT DEF def1 def2. !EXIT DDL COBOL Source Code VST004.
Introduction to DDL Maintaining a Dictionary If your native programs do not share host-language source code files with TNS programs, you can direct the DDL compiler to align data optimally for the native TNS/R or TNS/E environment. To do so, specify the command FIELDALIGN_SHARED8 on page 9-58 when storing data in a dictionary. While DDL source code files generated with SHARED8 alignment can be used by TNS and native programs, the performance of TNS programs is degraded.
Introduction to DDL Maintaining a Dictionary file and edit the DDL file, if necessary. Then compile the source statements into the open dictionary with a SOURCE command. Figure 1-5. Maintaining a Dictionary Source Schema Add new definition to dictionary 1 17> DDL DICT !? SOURCE schema (newdef) ! EXIT 2 ? SECTION newdef DEF defx TYPE def1. DDL Dictionary Change a referenced definition 18> DDL DICT !?DDL ddlsrc !OUTPUT UPDATE def1. !?NODDL !EDIT ddlsrc . . .
Introduction to DDL Examining a Dictionary Examining a Dictionary The DDL compiler produces a schema listing by default. In addition, the DDL compiler can produce a schema report that provides information about the object definitions in a schema. For each object, this report lists its type and size, its byte offset from the start of a group definition, and any definitions referenced by other objects. You can also generate reports on the dictionary itself.
Introduction to DDL Examining a Dictionary Figure 1-6. Examining a Dictionary 1 Produce schema report 19> DDL !? REPORT $S.#printer !? SOURCE schema ! EXIT 2 Produce dictionary reports 20> ENFORM / IN $ system.system ddquerys / DICT $system.ddl Source Schema DDL Schema Report Dictionary ENFORM Dictionary Reports VST006.
2 DDL Language Elements A DDL schema consists of DDL statements, DDL commands, and comments. You must enter statements, commands, and comments according to strict syntax.
DDL Language Elements Syntax Syntax Every DDL name: • • • Begins with either a letter (A-Z or a-z) or an underscore (_) Has a maximum of 30 ASCII characters, which are any of: ° ° ° ° Letters Decimal digits (0-9) Hyphen (-) Underscore Does not end with a hyphen Uppercase letters are not distinguished from lowercase letters, and any underscores are part of the name.
DDL Language Elements File Names • If a DDL name in a RECORD statement is an Enform Plus reserved word, the DDL compiler warns you that you cannot use that record for an Enform Plus query. For a list of Enform Plus reserved words, see the Enform Plus Reference Manual. • SPI variable names and other names defined by HP begin with the letter Z.
DDL Language Elements Network File Names Network File Names Network file names identify files that are accessed across a network of HP NonStop systems. Always identify a network file by a fully qualified file name that includes the system, volume, and subvolume. \system-name.$volume-name.subvolume-name.file-identifier system-name is one alphabetic character followed by up to 6 alphanumeric ASCII characters. volume-name is one alphabetic character followed by up to 6 alphanumeric ASCII characters. Note.
DDL Language Elements Numbers Numbers The DDL compiler recognizes both decimal and octal numeric values. An octal number is specified by a percent sign (%). An unsigned number is positive by default—a plus (+) sign is optional. A negative number is specified with a minus sign (-). Any plus or minus sign must immediately precede the number.
DDL Language Elements National Literals National Literals { N }{ "2-byte-character ..." } { n }{ ‘2-byte-character ...’ } 2-byte-character must occupy two bytes internally. The first byte must not contain the binary equivalent of a quotation mark (“). The opening quotation mark (" or ‘) must immediately follow N or n, with no intervening space or line break. Keywords A DDL keyword has a specific meaning when placed at a keyword position within a statement.
DDL Language Elements BUFFERSIZE BY C CFIELDALIGN_MATCHED2 CHARACTER C_MATCH_HISTORIC_TAL CODE COMP COMP-3 COMPLEX COMPRESS COMPUTATIONAL COMPUTATIONAL-3 CONSTANT CRTPID CURRENT D DATE DATETIME DAY DCOMPRESS DEF DEFINITION DELETE DEPENDING DESCENDING DEVICE DISPLAY DUPLICATES E EDIT-PIC END ENTRY-SEQUENCED ENUM EXIT EXT EXTERNAL Data Definition Language (DDL) Reference Manual—529431-004 2-7 Keywords
DDL Language Elements F FILE FIELDALIGN_SHARED8 FILLER FLOAT FNAME FNAME32 FOR FRACTION H HEADING HELP HIGH-NUMBER HIGH-VALUE HOUR I ICOMPRESS INDEX INDEXED INTERVAL IS J JUST JUSTIFIED K KEY KEY-SEQUENCED KEYTAG L LN LOGICAL LOW-NUMBER LOW-VALUE LOW-VALUES Data Definition Language (DDL) Reference Manual—529431-004 2-8 Keywords
DDL Language Elements M MAXEXTENTS MINUTE MONTH MUST N N NO NOT NOVALUE NOVERSION NULL O OCCURS ODDUNSTR OF ON OUTPUT P PACKED-DECIMAL PHANDLE PIC PICTURE Q QUOTE QUOTES R RECORD REDEFINES REFRESH RELATIVE RENAMES RIGHT Data Definition Language (DDL) Reference Manual—529431-004 2-9 Keywords
DDL Language Elements S SECOND SEQ SEQUENCE SERIALWRITES SETLOCALENAME SHOW SPACE SPACES SPI-NULL SQL SQLNULL SQL-NULLABLE SSID SUBVOL SYSTEM T TACL TALUNDERSCORE TEMPORARY THROUGH THRU TIME TIMES TIMESTAMP TO TOKEN-CODE TOKEN-MAP TOKEN-TYPE TRANSID TSTAMP TYPE U UNSIGNED UNSTRUCTURED UPDATE UPSHIFT USAGE USE USERNAME Data Definition Language (DDL) Reference Manual—529431-004 2-10 Keywords
DDL Language Elements Reserved Words V VALUE VARCHAR VARYING VERIFIEDWRITESVERSION Y YEAR Z ZERO ZEROES ZEROS Reserved Words DDL reserved words are a subset of DDL Keywords on page 2-6. DDL reserved words cannot be defined as DDL data names.
DDL Language Elements Special Characters Special Characters Table 2-2. DDL Special Characters Name Character Blank Function Separates keywords, data names, and other language elements. Percent Sign % Denotes an octal number. Quote “ Used as a delimiter for various language elements. Apostrophe ‘ Can be used in place of a quotation mark.
DDL Language Elements Dictionary Comments In Example 2-4 on page 2-13: • The first comment begins with the exclamation point (!) and ends when the line ends; that is, the entire line is a comment. • The second comment begins with the first exclamation point and ends with the second exclamation point; that is, the second comment is “!numeric key!”. Example 2-4. DDL Compiler Listing Comments ! The CUSTOMER record is on page 8 DEF custnum !numeric key! PIC 9(4).
DDL Language Elements Dictionary Comments Example 2-6. User-Defined Dictionary Comments DEFINITION custinfo. * This field is a unique customer identifier: 02 custnum PIC 9(4). * This group has the customer name in sequence: 02 custname. 04 last-name PIC X(12). 04 first-name PIC X(8). 04 initial PIC X(2).
DDL Language Elements Compiler Listing Comments Compiler Listing Comments The DDL compiler puts compiler listing comments only in its compiler listing, not in the dictionary or in host-language source code files. Like dictionary comments, DDL has two types of listing comments: • • User-Defined Compiler Listing Comments on page 2-15 Production Comments on page 2-15 User-Defined Compiler Listing Comments The DDL compiler always puts user-defined compiler listing comments in its compiler listing.
DDL Language Elements Statements Statements Each of the DDL statements in Table 2-3, DDL Statements That Define or Replace Objects, on page 2-17: • Defines or replaces an object in the open dictionary, where other DDL statements can use it • If a source code file is open, translates the definition of the object to the language of the source code file and write the definition to the source code file The DDL statements in Table 2-4, DDL Statements That Display Objects, on page 2-17 display objects that
DDL Language Elements Statements Table 2-3.
DDL Language Elements Commands Commands DDL commands instruct the DDL compiler to perform specific actions. DDL commands consist of one or more keywords. Some commands also have one or more parameters to further control the action of the command. For syntax of individual DDL commands, see Section 9, DDL Compiler Commands. Rules for DDL commands: • A command or sequence of commands can be either part of a DDL schema or a parameter in a RUN DDL command.
3 Running the DDL Compiler You run the DDL compiler by using the RUN DDL command. You can run the DDL compiler either interactively, entering commands and source lines from the keyboard, or noninteractively, entering an entire schema from a file. Running the DDL compiler interactively is recommended for functions that require only a few statements or commands, such as modifying an existing dictionary or generating source code from a dictionary.
Running the DDL Compiler RUN DDL Command OUT [ listing-destination ] determines whether the DDL compiler produces a listing, and if so, where. If you omit this option, the DDL compiler sends the listing to its home terminal. If you specify OUT but omit listing-destination, the DDL compiler does not produce a listing. listing-destination specifies the output device or disk file to which the DDL compiler writes its listing.
Running the DDL Compiler Running the DDL Compiler Noninteractively Run-time defaults for the DDL compiler: • If you do not fully qualify a file name with volume and subvolume names, the DDL compiler qualifies the file name with the current default volume and subvolume names. • The DDL compiler creates all files, including dictionary files and host-language source code files, with your default file-creation security. To change your default file-creation security, use the TACL DEFAULT command.
Running the DDL Compiler Running the DDL Compiler Interactively Running the DDL Compiler Interactively To run the DDL compiler interactively, use the RUN DDL Command on page 3-1 and either: • • Omit the run options IN and OUT. Specify the same interactive terminal for both of the run options IN and OUT.
Running the DDL Compiler Completion Codes Example 3-4. Interactive DDL Session: Writing From a Dictionary to a File 63> DDL !?DICT $data.sales Open a dictionary on the volume $DATA and the subvolume SALES. !?FUP fupsrc ! Open the file fupsrc, clearing any contents. !OUTPUT RECORD customer. Retrieve the record customer from the dictionary and write the appropriate FUP file-creation commands for this record to fupsrc. Exit the DDL compiler, returning to the command interpreter.
4 Named Constants A named constant is a dictionary object that has a name, a data type, and a value. You define named a constant in a CONSTANT statement, and you can refer to a named constant value by name in other DDL statements. Topics: • • CONSTANT on page 4-1 Standard SPI Constants on page 4-9 CONSTANT The CONSTANT statement defines a constant and adds it to the open dictionary. When the constant is in the dictionary, other DDL statements can use the constant as a literal value.
Named Constants CONSTANT value-clause VALUE [ IS ] { { { { { { { { { { constant-number "string " national-literal existing-constant VERSION "Lnn " } [ LN-clause ]... } } } } } } } } } constant-number is a signed or unsigned decimal or octal integer (see Numbers on page 2-5) that is consistent with type (if type is specified). "string " is a string of from 1 to 130 ASCII characters (see Strings on page 2-5). national-literal is a national literal (see National Literals on page 2-6).
Named Constants Numeric Constants Topics: • • • • • • • • • Numeric Constants on page 4-3 Product Version Constants on page 4-4 Existing Constants on page 4-5 C on page 4-5 COBOL on page 4-6 Pascal (D-series Systems Only) on page 4-6 TACL on page 4-7 TAL on page 4-8 Examples on page 4-8 Numeric Constants Each type of numeric constant has a different range of valid values, as Table 4-1 on page 4-3 shows. Table 4-1.
Named Constants Product Version Constants Product Version Constants When specifying product version constants: • • You can use a product version constant only in the VERSION clause of a TOKENMAP statement, in the VALUE clause of a DEFINITION statement, or in the VALUE clause of a CONSTANT statement. ° When a VALUE clause in a DEFINITION or CONSTANT statement includes a product version constant, the DDL compiler treats the product version constant as a BINARY 16 integer type.
Named Constants Existing Constants Existing Constants When using the name of an existing constant as the value in a CONSTANT statement: • You can specify a DDL constant name instead of a literal value in the VALUE clause of a CONSTANT statement whether the constant name identifies a string constant, a numeric constant, or a product version constant. • When the name identifies a previously defined string constant, the new value is identical to the value of the string constant.
Named Constants COBOL COBOL When generating COBOL source code from CONSTANT statements: • If you request COBOL source-code output, by giving the COBOL command, the DDL compiler generates a level-01 data description entry for each named constant. • For a string constant, the DDL compiler generates a string value identical to the specified constant value.
Named Constants TACL TACL When generating TACL source code from CONSTANT statements: • If you request TACL source-code output, by giving the TACL command, the DDL compiler generates TACL TEXT variables for named constants. • The DDL compiler converts any hyphen in the constant name to a circumflex (^) in the TACL TEXT variable name. • For a string constant, the DDL compiler generates a TACL TEXT variable with a value derived from the DDL constant value.
Named Constants TAL TAL When generating pTAL or TAL source code from CONSTANT statements: • If you request pTAL or TAL source-code output by giving the TAL command, the DDL compiler generates pTAL or TAL source code for named constants. • The DDL compiler converts any hyphen in the constant name to a circumflex (^) in the TAL DEFINE name. • For a string constant, the DDL compiler generates a TAL DEFINE. Each DEFINE specifies a value that exactly matches the constant value.
Named Constants Standard SPI Constants Example 4-2. Numeric Constant Defined by Existing Constant—Same Type CONSTANT a VALUE 200 TYPE BINARY 16 UNSIGNED. CONSTANT a VALUE b. ! Type binary 16 unsigned If the second CONSTANT statement includes a TYPE clause, the clause overrides the defining constant. In Example 4-3 on page 4-9, the type specified for constant C overrides the type specified for constant A. Example 4-3.
5 Definitions and Records Definitions and records are dictionary objects that describe data structures and disk-file record structures, respectively.
Definitions and Records Order of Clauses The DEFINITION statement has three forms: Form Description Field Definition on page 5-4 Defines a single field Group Definition on page 5-5 Defines a group of fields or a group of groups Reference Definition on page 5-7 Defines a field or group by referring to a previous definition Topics: • • • • • • Order of Clauses on page 5-2 Definition Length on page 5-2 Field Definition on page 5-4 Group Definition on page 5-5 Reference Definition on page 5-7 Error
Definitions and Records • Definition Length These languages further definition length: Language Maximum Definition Length (Bytes) FORTRAN 255 TACL 5,000 Pascal (on D-series systems) 32,766 COBOL 4,096 Data Definition Language (DDL) Reference Manual—529431-004 5-3
Definitions and Records Field Definition This DEFINITION statement defines a single field. DEF[INITION] def-name { PICTURE-clause | TYPE-clause } [ AS-clause ] [ BEGIN ] [ DISPLAY-clause ] [ EDIT-PIC-clause ] [ EXTERNAL-clause ] [ HEADING-clause ] [ HELP-clause ] [ JUSTIFIED-clause ] [ MUST-BE-clause ] [ NULL-clause ] [ SPI-NULL-clause ] [ SQLNULLABLE-clause ] [ TACL-clause ] [ UPSHIFT-clause ] [ USAGE-clause ] [ VALUE-clause ] . [ 88-condition-name-clause . ] ... [ 89-enumeration-clause . ] ... [ END [ .
Definitions and Records Group Definition Example 5-1. Field Definitions DEF company-name TYPE CHARACTER 30 DEF custnum PIC 9(6) NULL 0 . HEADING "Customer/Number" . DEF status TYPE ENUM BEGIN. 89 no-error. 89 read-error VALUE 3. 89 write-error. END. Group Definition This DEFINITION statement defines a group of fields or a group of groups.
Definitions and Records Group Definition The TYPE clause for a field within a group DEFINITION statement can refer to a field or group definition previously stored in the open dictionary. When a field is defined by referring to a group definition, the field effectively becomes a group. A group’s size is the total of the lengths of its member fields plus any FILLER fields generated by the DDL compiler. Example 5-2. Group Definitions DEF address. 03 street-address.
Definitions and Records Reference Definition Reference Definition This DEFINITION statement copies an existing definition, giving it a new name. The new definition can be given its own attributes, which can override all copied attributes except data type and size.
Definitions and Records Error Handling Error Handling When the DDL compiler encounters an error in a DEFINITION statement, it continues processing the statement to determine if there are other errors before processing the next statement. The DDL compiler does not add the definition to the dictionary, and if any source code files are open, the DDL compiler does not write the definition to those files.
Definitions and Records RECORD record-reference specifies the data structure of the record in terms of another, existing record and (optionally) identifies primary and alternate keys (see Record Reference Syntax on page 5-16). key-assignment specifies one or more fields or groups of fields as Enscribe keys, assigns key specifiers to key fields, and specifies that a file is to be sorted on a nonkey field or group of fields (see Key Assignment Syntax on page 5-17).
Definitions and Records File-Creation Syntax File-Creation Syntax In the statement RECORD on page 5-8, file-creation specifies either the name or the type of the disk file that will store occurrences of the record. FILE IS { ["]file-name["] } [ creation-attribute ] ... { TEMPORARY } { ASSIGNED } file-name is the name of a disk file that is to contain occurrences of the record defined in the RECORD statement. file-name can appear in more than one RECORD statement in the same dictionary.
Definitions and Records File-Creation Syntax If you omit file-creation from the RECORD statement: • The DDL compiler derives file-name from record-name : If record-name has a hyphen (-) within its first 8 characters, file-name is all of the characters up to the first hyphen; otherwise, file-name is the first 8 characters of recordname. Volume and subvolume names are undefined. • The DDL compiler assigns a file type: If the record has ... File type is ...
Definitions and Records Creation-Attribute Syntax Creation-Attribute Syntax In the File-Creation Syntax on page 5-10, creation-attribute is an attribute of the disk file that will store occurrences of the record defined by the statement RECORD on page 5-8. Note. The DDL compiler ignores creation-attribute when generating TACL source code from a RECORD statement.
Definitions and Records Creation-Attribute Syntax AUDITCOMPRESS compresses the file’s audit trail. For more information, see the TMF Management Programming Manual. BLOCK block-length specifies the block size, in bytes, for both data and index blocks in a structured file. You can specify block-length either as an integer or as the name of a constant in the open dictionary. Block-length must be one of the following values: • • • • 512 1024 2048 4096 Default: 4096 bytes Note: In H06.28/J06.
Definitions and Records • • Creation-Attribute Syntax 0 through 99 1,000 through 65,535 File codes 100 through 999 are reserved for use by HP. Default: Zero { COMPRESS | DCOMPRESS | ICOMPRESS } are only for key-sequenced files. COMPRESS turns on both index compression and data compression. DCOMPRESS turns on data compression. ICOMPRESS turns on index compression. { extent-size } EXT { } { ( pri-extent-size [, sec-extent-size ] ) } sets the extent size in pages.
Definitions and Records Record Structure Syntax sec-extent-size specifies the secondary extent size. You can specify sec-extent-size either as an integer or as the name of a constant in the open dictionary. The value sec-extent-size must be an integer from 1 through 65,535. Default: 32 pages MAXEXTENTS maximum-extents sets the maximum number of extents the file can have. You can specify maximumextents either as an integer or as the name of a constant in the open dictionary.
Definitions and Records Record Reference Syntax A record structure must contain at least one field description. Every field description must have a PICTURE or TYPE clause. A record structure can contain one or more group descriptions. A group description cannot have a PICTURE clause. A TYPE clause for a field within a record structure can refer to a field or group definition previously stored in a dictionary. When a field is defined by referring to a group definition, it effectively becomes a group.
Definitions and Records Key Assignment Syntax When you use record reference syntax, you must declare any key fields with a key assignment at the end of the RECORD statement. You cannot use a KEYTAG clause to declare key fields with a reference record structure.
Definitions and Records Error Handling DUPLICATES [ NOT ] ALLOWED specifies whether to allow duplicate alternate key values. Do not specify DUPLICATES ALLOWED for a primary key field. Default: DUPLICATES ALLOWED UPDATE [ NOT ] ALLOWED specifies whether to allow updates for an alternate key file. This clause affects FUP output generated for the alternate key.
Definitions and Records Examples Examples The RECORD statements in Example 5-5 on page 5-19 through Example 5-8 on page 5-20 refer to the definitions in Example 5-4 on page 5-19. Example 5-4. Definitions Referenced in RECORD Statements CONSTANT phone-heading CONSTANT phone-display DEF phone 02 area-code 02 prefix 02 numb END VALUE IS "Phone Number". VALUE IS "M<(999) 999-9999>". HEADING phone-heading DISPLAY phone-display. PIC 9(3). PIC 9(3). PIC 9(4). DEF addr.
Definitions and Records Examples Example 5-7. Qualifying Alternate Key Fields Whose Names Are the Same RECORD phones . FILE IS "\dallas.$data.sales.person" KEY-SEQUENCED. 02 social-security 02 home-phone 02 work-phone PIC 9(9). TYPE phone. TYPE phone. KEY IS social-security. KEY "hc" IS home-phone.area-code. KEY "wc" IS work-phone.area-code. END Example 5-8. Creating an Alternate Key File DDL Source Code: RECORD test-1. FILE IS "Test1". 02 f-1 TYPE BINARY. 02 f-2 PIC X(10). 02 f-3 TYPE COMPLEX.
Definitions and Records Syntax Elements Syntax Elements These syntax elements appear in one or more forms of DEFINITION and RECORD statements: • • Clauses on page 5-21 Other Elements on page 5-23 Clauses This topic lists clauses with level numbers first, in numerical order, followed by other clauses in alphabetical order. 66-RENAMES-clause renames a previously defined field or group or set of fields or groups (see 66 RENAMES on page 6-80). Note.
Definitions and Records Clauses EXTERNAL-clause writes the EXTERNAL clause to COBOL source code files (see EXTERNAL on page 6-6). HEADING-clause specifies a default field heading for values listed on Enform Plus reports or displayed on screens generated by ENABLE and Pathmaker (see HEADING on page 6-9). HELP-clause assigns help text, used by Pathmaker-generated requesters, to a group or elementary item (see HELP on page 6-10).
Definitions and Records Other Elements SPI-NULL-clause specifies an SPI null value for a field or group in an SPI-extensible structured token or for a field or group within a group definition (see SPI-NULL on page 6-37). SQLNULLABLE-clause specifies whether a line item is to be treated as an SQL-nullable column (see SQLNULLABLE on page 6-40). TACL-clause specifies the TACL data type to which a DDL data item is to be converted when generating TACL source code (see TACL on page 6-45).
Definitions and Records Other Elements def-name-1 TYPE def-name-2 defines a new data structure, def-name-1, by referring to a previously defined data structure, def-name-2. Both def-name-1 and def-name-2 are DLL names. END [ . ] ends either a group DEFINITION statement, a single-field DEFINITION statement that includes BEGIN, or a RECORD statement. level-number { field-name | group-name | FILLER } specifies a field or group of fields within a group definition.
Definitions and Records Other Elements FILLER defines an unnamed field that is never referenced directly (see FILLER on page 6-7). line-item specification level-number { field-name | group-name | FILLER } { PICTURE-clause | TYPE-clause } [ AS-clause ] [ DISPLAY-clause ] [ EDIT-PIC-clause ] [ HEADING-clause ] [ HELP-clause ] [ JUSTIFIED-clause ] [ LN-clause ] ...
6 Definition Attributes Definition attributes are part of definitions and records, which are dictionary objects that describe data structures and disk-file record structures. Each definition and record includes attributes such as size, data type, and usage. The definition attributes are defined by clauses in DEFINITION statements or in the record structure portion of RECORD statements. Many of these clauses are similar to COBOL clauses of the same name. Table 6-1.
Definition Attributes Table 6-1.
Definition Attributes AS AS Note. The DDL compiler ignores this clause when generating host-language source code. The AS clause specifies a display string. Context Effect Field Definition on page 5-4 Specifies a display string for an enumeration value in a field of type ENUM 89 Enumeration on page 6-85 Specifies a default display string for a field of type ENUM.
Definition Attributes DISPLAY DISPLAY Note. The DDL compiler ignores this clause when generating host-language source code. The DISPLAY clause specifies a default display format for field or group values listed on an Enform Plus report. DISPLAY display-format display-format is either a string (enclosed in quotation marks) or the name of a constant in the open dictionary.
Definition Attributes EDIT-PIC EDIT-PIC Note. The DDL compiler ignores this clause when generating host-language source code. The EDIT-PIC clause specifies the format in which Pathmaker-generated requesters display a field’s data on a screen. EDIT-PIC edit-picture-string edit-picture is either a string (enclosed in quotation marks) or the name of a constant in the open dictionary. The value of edit-picture must conform to the field’s data type. The EDIT-PIC clause does not replace the PICTURE clause.
Definition Attributes EXTERNAL In Example 6-3 on page 6-6: • Although the first edit picture has more characters than the elementary item, the edit picture is valid because the extra characters leave room to display the minus sign and currency symbol at the beginning. Also, it is valid to display fewer characters to the right of the decimal point than the elementary item contains there. • The data length of the second edit picture is invalid because it has too many minus signs.
Definition Attributes FILLER FILLER The FILLER clause defines an unnamed field that is never referenced directly. FILLER A FILLER field must have its data type and size specified with a PICTURE or TYPE clause. A FILLER field can be repeated with an OCCURS clause. A FILLER field is always part of a group definition or description, never a stand-alone field. A FILLER field cannot be referenced directly, but it can be referenced indirectly as part of a group.
Definition Attributes FILLER Example 6-5. FILLER Clauses Translated to C and Pascal Source Code DDL Definition DEF name-struct. 02 first-name 02 FILLER 02 second-name 02 FILLER END. PIC PIC PIC PIC X(10). X(6). X(24). 9(6).
Definition Attributes HEADING HEADING Note. The DDL compiler ignores this clause when generating host-language source code. The HEADING clause specifies a default field heading for values listed on Enform Plus reports or displayed on screens generated by ENABLE and Pathmaker. HEADING report-heading [ LN-clause ]... report-heading is either a string of ASCII or national characters (enclosed in quotation marks) or the name of a constant in the open dictionary.
Definition Attributes HELP HELP Note. The DDL compiler ignores this clause when generating host-language source code. The HELP clause assigns help text, used by Pathmaker-generated requesters, to a group or elementary item in a DEFINITION statement. HELP help-text [ [,] help-text ]... help-text is either a string of ASCII or national characters (enclosed in quotation marks) or the name of a constant in the open dictionary. The value of the constant must be a string of ASCII or national characters.
Definition Attributes JUSTIFIED Example 6-8. HELP Clause DEF address 02 02 02 02 END HELP "This is a four-field", "address consisting of street," "city, state code, and ZIP code.". PIC X(30). PIC X(20). PIC X(2). PIC X(5). street city state zip If you use the same help text frequently, you can define a constant containing the help text and then use the constant name in the DEFINITION statement. Example 6-9.
Definition Attributes KEYTAG KEYTAG Note. The DDL compiler ignores this clause when generating TACL source code. The KEYTAG clause specifies that the field or group is an Enscribe key field. KEYTAG key-specifier [ DUPLICATES [NOT] ALLOWED ] key-specifier is either as an integer from -32,768 through 32,767; two ASCII characters enclosed in quotation marks; or the name of a constant in the open dictionary.
Definition Attributes LN LN The LN clause specifies a locale name (language, territory, and character set) for: • • • • • Specified value-clause items in CONSTANT on page 4-1 display-string in AS on page 6-3 report-heading in HEADING on page 6-9 Specified value items in VALUE on page 6-76 Specified value items in 88 Condition-Name on page 6-82 { LN"language-code[_territory-code][.charset]" } { constant-name } language-code is a character string forming a language symbol.
Definition Attributes LN Table 6-3. Supported Locale Names Locale Name Description POSIX C da_DK.ISO8859-1 Danish de_CH.ISO8859-1 German, Switzerland de_DE.ISO8859-1 German, Germany el_GR.ISO8859-1 Greek en_GB.ISO8859-1 English, UK en_US.ISO8859-1 English, USA es_ES.ISO8859-1 Spanish fi_FI.ISO8859-1 Finnish fr_BE.ISO8859-1 French, Belgium fr_CA.ISO8859-1 French, Canada fr_CH.ISO8859-1 French, Switzerland fr_FR.ISO8859-1 French, France is_IS.ISO8859-1 Icelandic it_IT.
Definition Attributes MUST BE A text item is any text associated with an object.
Definition Attributes { { { { { { { MUST BE "character-string" constant-name figurative-constant national-literal number symbolic-literal value-name } } } } } } } character-string is a string of ASCII characters. constant-name is the name of a constant in the open dictionary.
Definition Attributes MUST BE Table 6-4.
Definition Attributes MUST BE You cannot specify a MUST BE clause for fields of some SQL data types (see the SQL/MP Reference Manual and SQL/MX Reference Manual). You cannot specify CURRENT, SYSTEM, or SQLNULL as a value for a MUST BE clause. Requesters generated by the Pathmaker product enforce the MUST BE constraints; programs written by users must be coded to enforce these constraints as well.
Definition Attributes NULL NULL Note. The DDL compiler ignores this clause when generating host-language source code. The NULL clause assigns a null value to a field or group used as an Enscribe alternate key. If a record being inserted in the database has a null value in the alternate key field, the alternate key is not added to the alternate key file. NULL { "character " | number | constant-name } character is any ASCII character. number is any number from 0 through 255.
Definition Attributes OCCURS Example 6-15. NULL Clause RECORD employee. FILE IS "employee" key-sequenced. 02 empinfo. 04 empid 04 empname 04 dept PIC 9(4). PIC X(22). PIC X(4). 02 taxinfo 04 spousename 04 dependents NULL 0. PIC X(22). PIC 9(2). KEY IS empid. KEY "ti" is taxinfo. END You can also use a constant name to specify the NULL value. Example 6-16. Specifying NULL Value With a Constant CONSTANT null-0 VALUE 0. ... 02 taxinfo 04 spousename 04 dependents NULL null-0. PIC X(22). PIC 9(2).
Definition Attributes OCCURS These statements apply to both the OCCURS clause and the OCCURS DEPENDING ON clause except as explained in OCCURS DEPENDING ON on page 6-23: • OCCURS cannot be specified for the first element of a RECORD or DEFINITION statement. OCCURS can be specified only at level number 02 or greater.
Definition Attributes OCCURS In Example 6-17 on page 6-22, which declares storage for 52 paycheck values, one for each week of the year: • • TAL programs with TALBOUND 1 or with no TALBOUND clause access individual paycheck values like this: PAYCHECK [1] Paycheck value for the first week PAYCHECK [52] Paycheck value for the last week TAL programs with TALBOUND 0 access individual paycheck values like this: PAYCHECK [0] Paycheck value for the first week PAYCHECK [51] Paycheck value for the last w
Definition Attributes OCCURS DEPENDING ON COBOL output for the INDEXED BY attribute: DDL Code COBOL Code DEF xyz 02 abc TYPE BINARY OCCURS 3 TIMES INDEXED BY ix. END. 01 XYZ. 02 ABC NATIVE-2 OCCURS 3 TIMES INDEXED BY IX. OCCURS DEPENDING ON For DDL and COBOL source code, the OCCURS DEPENDING ON clause repeats a field or group a variable number of times, depending on the current value of an integer variable.
Definition Attributes OCCURS DEPENDING ON The OCCURS DEPENDING ON clause differs from OCCURS on page 6-20 in that: • For Pascal (on D-series systems), C, FORTRAN, pTAL, TACL, and TAL, the DDL compiler generates source code identical to the code it generates for OCCURS max TIMES. • Only one OCCURS DEPENDING ON clause can be in a DEFINITION or RECORD statement, and the clause’s subordinate fields or groups must be the last fields or groups in that statement.
Definition Attributes PICTURE Example 6-20. OCCURS DEPENDING ON Clause (page 2 of 2) DDL Code for DEPENDING ON Clause COBOL Code for DEPENDING ON Clause DEF xyz. 02 i TYPE BINARY 02 abc TYPE BINARY OCCURS 1 to 3 01 XYZ. 02 I NATIVE-2. 02 ABC NATIVE-2 OCCURS 1 TO 3 TIMES DEPENDING ON i INDEXED BY ix. END. TIMES DEPENDING ON I OF XYZ INDEXED BY IX. PICTURE The PICTURE clause specifies (using COBOL notation) the data type and size of a field or of a field.
Definition Attributes PICTURE 9 represents an ASCII digit, from 0 through 9. length is a one-digit to five-digit integer that specifies the number of times the preceding symbol repeats. You can omit length and specify the length by repeating the symbol (X, A, or 9) once for each character position you want in the field. S represents a sign character in a signed numeric field. T represents a numeric character with an implied embedded sign. Alone, the symbol T represents a one-byte numeric field.
Definition Attributes PICTURE Example 6-21. PICTURE Clauses Describing ASCII Character Fields DEF ascii-pictures 02 alpha-field PIC 02 alphanum-2 PIC 02 alphanum-1 PIC 02 nat-field PIC 02 unsigned PIC 02 signed-1 PIC 02 signed-1 PIC 02 signed-2 PIC 02 signed-3 PIC 02 imp-decimal PIC END. A(10). X(10). AAX(4)9(4). N(5). 9(5). S9(5). 9(5)S. T9(5). 9(5)T. 9(3)V9(2).
Definition Attributes National Data Items National Data Items The only symbol you can specify in a national picture string is N or n (except for the parentheses and a number to specify the length, or number of repetitions). The maximum length you can specify for a national data item is half of the maximum internal field length. For definitions, the maximum internal field length is 32767 bytes.
Definition Attributes COBOL COBOL DDL PICTURE clauses are translated to COBOL PICTURE clauses. For a national picture string, the DDL compiler generates COBOL output as specified in the PICTURE clause. The maximum field length depends on data type: • If an alphanumeric or national field is used only in working storage (not in a record), the maximum field length is 32,767 bytes.
Definition Attributes • • • FORTRAN If T is the last character, the DDL compiler adds SIGN TRAILING. If T is the only character in the PICTURE string, the DDL compiler translates the PICTURE clause to a PIC S9 SIGN IS LEADING clause for COBOL. The symbol T is counted as one digit in a numeric field. For more information, see Table C-2, Sample DDL/COBOL Data Translation Table, on page C-3. FORTRAN Most alphanumeric and numeric PICTURE clauses are translated to FORTRAN character strings.
Definition Attributes • TACL If a numeric, national, or alphanumeric field is defined in or referenced by a RECORD statement, the maximum field length is the maximum record length, which depends on file type: File Type Record’s Maximum Length Entry-sequenced 4072 bytes Key-sequenced 4062 bytes* Relative 4072 bytes Unstructured 4096 bytes * In H06.28/J06.17 RVUs with specific SPRs and later RVUs, the supported maximum record length for a key-sequenced file is 27648 bytes.
Definition Attributes REDEFINES group-name is the name of the previous group in the definition or record currently being defined. Redefining structures must start at the same level as the structures they redefine. A redefining structure must immediately follow the structure it redefines except in the case of multiple redefines where each redefining structure refers back to the same original structure. A redefining field must not have a VALUE clause, a MUST BE clause, or an UPSHIFT clause.
Definition Attributes C C For C, the DDL compiler generates source code that combines the items of a REDEFINES clause to a union. The C structure containing such a union has one more item level than the corresponding DDL structure containing the REDEFINES clause. This situation causes the DDL compiler to issue a warning message unless you include the NOWARN command. The name of the union has the form u_first_member_name.
Definition Attributes FORTRAN FORTRAN Example 6-25. REDEFINES Clause With FORTRAN Output DDL Input DEF A. 02 B 02 C 04 04 02 D. 04 04 02 E 02 F 04 04 END. C-1 C-2 D-1 D-2 F-1 F-2 PIC 9(4). REDEFINES B. PIC 9(2). PIC 9(2). PIC X. PIC 9 REDEFINES D-1. PIC 9(5). REDEFINES E. PIC 9(3). PIC 9(2).
Definition Attributes Pascal (D-series Systems Only) the name of the first structure being redefined. If the DDL-generated variant record name is the same as any of its siblings defined in the same group, the DDL compiler issues an error message and does not generate output. Pascal does not do any run-time checking to enforce which variant is active at any given time. Example 6-26 on page 6-35 shows the Pascal source code generated by the DDL compiler for a REDEFINES clause.
Definition Attributes pTAL or TAL Example 6-26.
Definition Attributes SPI-NULL Example 6-27.
Definition Attributes SPI-NULL The SPI-NULL value must fit in one byte. A field or group with an SPI null value in every byte is considered to have unspecified data. The SPI-NULL clause differs from the NULL clause in that: • The SPI-NULL clause is used only to assign an SPI null value to a field or a group of fields that will be used in an SPI extensible structured token defined by a TOKEN-MAP statement.
Definition Attributes SPI-NULL Example 6-28. SPI-NULL Clause For a Single Field DEF assn-ddl-jobcode TYPE BINARY 16 SPI-NULL 0. Example 6-29. SPI-NULL Clause For a Group of Fields DEF assn-ddl-jobinfo SPI-NULL 1 02 jobcode TYPE BINARY 16. 02 priority TYPE BINARY 16. END. ! Inherits SPI-NULL value 1. ! Inherits SPI-NULL value 1.
Definition Attributes SQLNULLABLE SQLNULLABLE The SQLNULLABLE clause specifies that a line item is to be treated as an SQLnullable column. The NOTSQLNULLABLE clause specifies that a line item is not to be treated as an SQL-nullable column. [NOT]SQLNULLABLE In SQL, if a column is not explicitly specified as NOT NULL, it is a nullable column. Internally, a nullable SQL column is composed of the column itself and a numeric flag that indicates whether the column is null.
Definition Attributes SQLNULLABLE If the DDL clause NULL is specified for a line item, NOT SQLNULLABLE cannot be specified or implied for that item. SQLNULLABLE and NOT SQLNULLABLE cannot be specified on a line item whose data type has been set by a previous definition, nor on a group or subgroup that contains such a line item. An SQL-nullable line item is a word-aligned item regardless of its data type. An implicit filler of one byte is generated, when necessary, preceding the SQL-nullable line item.
Definition Attributes SQLNULLABLE Because of this restriction, the maximum size that can be specified on an SQL-nullable line item is two bytes less than the numbers shown above. These two bytes are the indicator that shows whether the line item is null. SQLNULLABLE cannot be specified for FILLER or BIT line items; these types of items can never be SQL-nullable.
Definition Attributes SQLNULLABLE Example 6-33. SQL-Nullable Output for C DDL Type C Type DEF B SQLNULLABLE. #pragma fieldalign shared2 __b typedef struct __b { char name[25]; struct { short indicator; char valu[10]; } nickname; short salary; char hire_date[10]; } b_def; 02 name PIC X(25) NOT SQLNULLABLE. 02 nickname PIC X(10) VALUE SQLNULL 02 salary TYPE BINARY NOT SQLNULLABLE. 02 hire-date TYPE SQL DATE NOT SQLNULLABLE. END. Example 6-34.
Definition Attributes SQLNULLABLE Example 6-36. SQL-Nullable Output for Pascal (D-series Systems Only) DDL Type Pascal Type DEF B SQLNULLABLE 02 name PIC X(25) NOT SQLNULLABLE. 02 nickname PIC X(10) VALUE SQLNULL. 02 salary TYPE BINARY NOT SQLNULLABLE. 02 hire-date TYPE SQL DATE NOT SQLNULLABLE. END. TYPE B_DEF = NAME NICKNAME INDICATOR VALU END; SALARY HIRE_DATE END; RECORD : FSTRING(25); : RECORD : INT16; : FSTRING(10); : INT16; : FSTRING(10); Example 6-37.
Definition Attributes TACL TACL The TACL clause specifies the TACL data type to which a DDL data item is to be converted when generating TACL source code. TACL type type is the TACL data type to which the DDL data type is to be converted. { { { { { { { { { { { CRTPID DEVICE ENUM FNAME FNAME32 PHANDLE SSID SUBVOL TRANSID TSTAMP USERNAME } } } } } } } } } } } The TACL clause can be specified in a field or group DEFINITION statement.
Definition Attributes • TACL The DDL field or group of fields must be the same length as the TACL high level data type. The length in bytes of each high-level TACL data type is shown in Table 6-6 on page 6-46. Table 6-6.
Definition Attributes TACL Example 6-39. TACL Clause DEFINITION Statement With TACL Clause ?TACL DEF term-id TYPE CHARACTER 8 TACL CRTPID. Structure Generated for DEFINITION Statement with TACL Clause ?Section TERM^ID Struct Begin CRTPID TERM^ID; End; DEFINITION Statement Without TACL Clause ?TACL DEF term-id TYPE CHARACTER 8.
Definition Attributes TACL Example 6-41. Inheriting TACL Clause From Referenced Definition DDL Input ?TACL DEF fname-2 TYPE fname-def. DDL Output (TACL Code) ?Section FNAME^2 Struct Begin FNAME FNAME^2; End; If the referring object is defined with a TACL clause, the referring TACL data type overrides any referenced TACL data type. In Example 6-42 on page 6-48, the TACL clause in the DEFINITION statement overrides the TACL clause in the definition of TERM-ID. Example 6-42.
Definition Attributes TYPE TYPE The TYPE clause specifies the data type and size of a data structure, either explicitly or by referring to a previously defined data structure.
Definition Attributes TYPE BINARY { { { { 8 } [ UNSIGNED ] [ 16 [ , scale ] ] } 32 [ , scale ] } 64 [ , scale ] } represents a two’s complement binary number, whose size can be specified as 8, 16, 32, or 64 bits. scale is an integer that specifies the position of an implied decimal point. Note. Use scale only for COBOL, pTAL, and TAL. A scale of n multiplies the number by 10 to the power of -n ; a scale of -n multiplies the number by 10 to the power of n.
Definition Attributes TYPE COMPLEX represents an 8-byte binary complex number. Note. Use COMPLEX only for C and FORTRAN. LOGICAL { 1 } { [ 2 ] } { 4 } represents a logical data type. Note. Use LOGICAL only for Pascal (on D-series systems), C, FORTRAN, pTAL, and TAL. The value of a logical data type is considered false if it is 0 and true if it is nonzero. LOGICAL Type Length 1* 1 byte 2 (default) 2 bytes 4 4 bytes * Use LOGICAL 1 only for Pascal (on D-series systems) and C.
Definition Attributes Specifying TYPE data-type ENUM enum-name specifies the enumeration definition that contains the values to use for the BIT item. The enumeration definition must be in the open dictionary, and the enumeration values in the enumeration definition must fit within the number of bits specified for the item, excluding any sign bit. def-name is the name of a previously defined data structure.
Definition Attributes Specifying TYPE data-type BINARY • C BINARY 16, 32, and 64 data types are translated to types short, long, and long long, respectively. Any scale factor is ignored. For H06.03 and later RVUs, the HP C and HP C++ compilers support the data type unsigned long long, which corresponds to the DDL data type BINARY 64 UNSIGNED. The value of an item of type BINARY 64 UNSIGNED cannot be in octal form. Example 6-44. C BINARY 64 and BINARY 64 UNSIGNED (H06.
Definition Attributes • Specifying TYPE data-type pTAL or TAL For pTAL or TAL, the BINARY 16, 32, and 64 data types are translated to INT, INT(32), and FIXED data types, respectively. If UNSIGNED is specified, it is ignored in the TAL data type. Scale is ignored for BINARY 16 and BINARY 32; for BINARY 64, scale becomes the fpoint value of a FIXED data type. The value of an item of type BINARY 64 UNSIGNED cannot be in octal form. Example 6-45.
Definition Attributes • Specifying TYPE data-type pTAL or TAL ENUM is translated to an INT with the level-89 items preceding the INT as literals. If you do not want to use an INT for a single-field definition, then use the NOTALALLOCATE command to generate the definition as a TAL DEFINE. For information about the NOTALALLOCATE command, see TALALLOCATE on page 9-108. LOGICAL For Pascal (on D-series systems), type LOGICAL 1 is translated to BOOLEAN.
Definition Attributes Specifying TYPE data-type When the definition of a group structure implies bit fillers, the DDL compiler generates the bit fillers implicitly, in the same way that the DDL compiler generates implicit byte fillers. The SPI-NULL value for a bit field is 255 by default. Because all bit fields and bit fillers have the same SPI-NULL value, all bits are turned on in a byte containing bit items. Bit fields that share the same byte must have the same product version number in a token map.
Definition Attributes Specifying TYPE data-type The DDL compiler generates: • • • • • • Bit Maps for C on page 6-57 Bit Maps for COBOL on page 6-59 Bit Maps for FORTRAN on page 6-61 Bit Maps for Pascal (D-series Systems Only) on page 6-62 Bit Maps for TACL on page 6-64 Bit Maps for pTAL and TAL on page 6-66 Bit Maps for C If bit-length is greater than 1, the output for field definition is SHORT or UNSIGNED SHORT. Group definition output is short fieldname:bit-length or unsigned fieldname:bit-length.
Definition Attributes Specifying TYPE data-type Example 6-47. Bit Field Output for C DDL Type C Type DEF Bit-1 TYPE BIT 1 typedef unsigned short bit_1_def; DEF New-Bit-1 TYPE Bit-1 typedef bit_1_def new_bit_1_def; DEF Bit-10 TYPE BIT 10 UNSIGNED. typedef unsigned short bit_10_def; DEF Bit-Map. 2 Bits-8 TYPE BIT 8. 2 Bits-3 TYPE BIT 3 UNSIGNED. 2 Bits-10 TYPE BIT 10. End.
Definition Attributes Specifying TYPE data-type Example 6-48. Bit Field Output for C (page 2 of 2) DDL Type C Type DEF Bits-With-Enums. typedef short enum_spec_def; #pragma fieldalign shared2 __bits_with_enums typedef struct __bits_with_enums { short bit_field_1:8; short bit_field_2:4; } bits_with_enums_def; 02 Bit-Field-1 TYPE BIT 8 ENUM Enum-Spec. 02 Bit-Field-2 TYPE BIT 4. End. DEF Reused-Bits. 02 Data-Item Type Binary. 02 Bits-Layout-1 Redefines Data-Item. 03 F-11 TYPE BIT 5. 03 F-12 TYPE BIT 6.
Definition Attributes Specifying TYPE data-type Example 6-49. Bit Field Output for COBOL DDL Type COBOL Type DEF Bit-1 TYPE BIT 1. 01 BIT-1 NATIVE-2. DEF New-Bit-1 TYPE Bit-1. 01 NEW-BIT-1 NATIVE-2. DEF Bit-10 TYPE BIT 10 UNSIGNED. 01 BIT-10 NATIVE-2. DEF Bit-Map. 2 Bits-8 TYPE BIT 8. 2 Bits-3 TYPE BIT 3 UNSIGNED. 2 Bits-10 TYPE BIT 10. End. 01 BIT-MAP. 02 FILLER NATIVE-2. 02 FILLER NATIVE-2. DEF Bit-Struct. 2 Bits-0 TYPE Bit-1. 2 Bits-1-To-10 TYPE Bit-10. End. 01 BIT-STRUCT.
Definition Attributes Specifying TYPE data-type Bit Maps for FORTRAN The output for a bit map declared as a field definition is INTEGER*2. the DDL compiler ignores bit-length. The output for a bit map declared in a group structure is FILLER. Both named bit fields and filler bit fields have the same number of words as the bit map. For a list of FORTRAN data types that the TYPE data-type clause generates, see Table C-3, Sample DDL/FORTRAN Data Translation Table, on page C-5. Example 6-50.
Definition Attributes Specifying TYPE data-type Example 6-50. Bit Field Output for FORTRAN (page 2 of 2) DDL Type FORTRAN Type DEF Reused-Bits. 02 Data-Item Type Binary. 02 Bits-Layout-1 Redefines Data-Item. 03 F-11 TYPE BIT 5. 03 F-12 TYPE BIT 6. 03 F-13 TYPE BIT 4. 02 Bits-Layout-2 Redefines Data-Item. 03 F-21 TYPE BIT 4. 03 F-22 TYPE BIT 3. End.
Definition Attributes Specifying TYPE data-type Example 6-51. Bit Field Output for Pascal DDL Type Pascal Type DEF Bit-1 TYPE BIT 1. TYPE BIT_1_DEF = INT(1); DEF New-Bit-1 TYPE Bit-1. TYPE NEW_BIT_1_DEF = BIT_1_DEF; DEF Bit-10 TYPE BIT 10 UNSIGNED. TYPE BIT_10_DEF = UNSIGNED(10); DEF Bit-Map. 2 Bits-8 TYPE BIT 8. 2 Bits-3 TYPE BIT 3 UNSIGNED. 2 Bits-10 TYPE BIT 10. End.
Definition Attributes Specifying TYPE data-type Example 6-52. Bit Field Output for Pascal (page 2 of 2) DDL Type Pascal Type DEF Reused-Bits. 02 Data-Item Type Binary. 02 Bits-Layout-1 Redefines Data-Item. 03 F-11 TYPE BIT 5. 03 F-12 TYPE BIT 6. 03 F-13 TYPE BIT 4. 02 Bits-Layout-2 Redefines Data-Item. 03 F-21 TYPE BIT 4. 03 F-22 TYPE BIT 3. End.
Definition Attributes Specifying TYPE data-type Example 6-53. Bit Field Output for TACL (page 2 of 2) DDL Type TACL Type DEF Bit-Map. 2 Bits-8 TYPE BIT 8. 2 Bits-3 TYPE BIT 3 UNSIGNED. 2 Bits-10 TYPE BIT 10. End. ?Section BIT^MAP Struct Begin FILLER 2; FILLER 2; End; DEF Bit-Struct. 2 Bits-0 TYPE Bit-1. 2 Bits-1-To-10 TYPE Bit-10. End. ?Section BIT^STRUCT Struct Begin FILLER 2; End; DEF Bit-Fillers. 2 Field-1 Type Character 3. 2 Filler Type Bit 4. 2 Bit-Field-1 Type Bit 5. 2 Filler Type Binary 16.
Definition Attributes Specifying TYPE data-type Bit Maps for pTAL and TAL The output for a bit map declared as a field definition is INT. The DDL compiler ignores bit-length. The output for a bit map declared in a group definition or a record is UNSIGNED (bitlength ) in a STRUCT template. The output for a bit filler is BIT_FILLER bit-length in a STRUCT template. Avoid defining level-89 clauses with the same name in different items.
Definition Attributes Specifying TYPE def-name Example 6-55. Bit Field Output for pTAL and TAL DDL Type pTAL or TAL Type DEF Enum-Spec Begin TYPE ENUM. 89 Val-1 Value 1. 89 Val-2 Value 3. 89 Val-3 Value 0. End. LITERAL VAL^1 = 1, VAL^2 = 3, VAL^3 = 0; INT ENUM^SPEC; DEF Bits-With-Enums. 02 Bit-Field-1 TYPE BIT 8 ENUM Enum-Spec. 02 Bit-Field-2 TYPE BIT 4. End.
Definition Attributes Specifying TYPE * If you use NULL or UPSHIFT in a definition that refers to another definition, the referring definition inherits the null value and upshift attribute from the referenced definition. You can use TYPE def-name to specify the length of a FILLER field. The FILLER field assumes the total length of the referenced definition. If you add comments, the new comments replace the original comments in a definition referenced by another definition.
Definition Attributes Specifying TYPE * Example 6-56. TYPE def-name and TYPE * Clauses (page 2 of 2) Definition That Refers to Dictionary Definitions DEF orderinfo. 02 employee TYPE name. 02 ordernum TYPE * HEADING "Order/Number". 02 orderdt TYPE orddate HEADING 02 orderint TYPE ordintervalHEADING Interval". 02 delivdate TYPE deldate HEADING 02 salesman PIC 9(4) HEADING 02 custnum PIC 9(4) HEADING END "Order Date". "Order "Deliv Date". "Salesman #". "Customer #".
Definition Attributes UPSHIFT UPSHIFT The UPSHIFT clause upshifts ASCII characters entered in the field. UPSHIFT Requesters generated by the Pathmaker product translate lowercase characters entered in this field to uppercase characters; user-written programs must be coded to enforce UPSHIFT. You cannot use the UPSHIFT clause for numeric or computational fields.
Definition Attributes USAGE USAGE The USAGE clause either specifies computational storage allocation for a numeric group or field or identifies a COBOL as an index. [ USAGE [ IS ] ] { { { ( COMP[UTATIONAL] INDEX COMP[UTATIONAL]-3 PACKED-DECIMAL } } } } COMP[UTATIONAL] specifies that the field or group is a numeric item that is to be stored as a computational value. INDEX specifies that a field is to be used as an index for COBOL only.
Definition Attributes USAGE Example 6-59. USAGE COMPUTATIONAL Clause DDL !?DICT !DEF EMP. !02 F1 PIC 9999 PACKED-DECIMAL VALUE 1234. !END. !?COBOL !OUTPUT *. $ADE101 JYOTI 4> DDL DDL Compiler T9100ABQ - (15NOV99) SYSTEM \BOMBAY COPYRIGHT TANDEM COMPUTERS INCORPORATED 1978, 1979, 1981, 1982, 1986-1999 !?DICT Audited dictionary created on subvol $ADE101.JYOTI. Dictionary opened on subvol $ADE101.JYOTI for update access. !DEF EMP. !02 F1 PIC 9999 PACKED-DECIMAL VALUE 1234. !END.
Definition Attributes USAGE When a group is declared as COMPUTATIONAL, each member of the group is also COMPUTATIONAL. All elements of the group must either be declared TYPE BINARY or have a picture compatible with TYPE BINARY. Reference definitions (TYPE * or TYPE def-name ) are accepted if they refer to an element declared as COMPUTATIONAL or TYPE BINARY. For TAL and FORTRAN source code, the DDL compiler translates the COMPUTATIONAL clause to the type and scale appropriate to the language.
Definition Attributes USAGE You cannot specify a USAGE clause for a national data item. A field can be declared as COMP-3 if the associated PICTURE declaration is of the form: PIC [S] 9.....[(length)] [ v 9.....[(length)] ] The symbol “9” can occur a maximum of 18 times in a PICTURE clause for an item declared as COMP-3. When a group is declared as COMP-3, each member is also COMP-3. All elements of the group must have a PICTURE declaration compatible with COMP-3.
Definition Attributes USAGE Example 6-60. USAGE IS INDEX Output for COBOL DDL COBOL DEF abc TYPE BINARY 32 USAGE IS INDEX. 01 ABC USAGE IS INDEX. DEF xyz TYPE BINARY USAGE IS INDEX. Invalid - ERROR DEF tst TYPE abc. 01 TST NATIVE-4. DEF grp. 02 item-1 TYPE xyz. 02 item-2 PIC 9(10). END. 01 GRP. 02 ITEM-1 NATIVE-2. 02 ITEM-2 PIC 9(10). Example 6-61. USAGE IS PACKED-DECIMAL Output for COBOL DDL COBOL DEF def1 PIC 9(4) COMP-3. 01 def1 PIC 9(4) COMP-3. DEF def2 PIC 9(4) COMPUTATIONAL-3.
Definition Attributes VALUE VALUE For DDL and some COBOL source code, the VALUE clause assigns an initial value to a field or group and the NOVALUE clause suppresses any VALUE clause in an item referenced by a TYPE clause. For other languages and some COBOL source code: Language DDL compiler ...
Definition Attributes VALUE number is 1 or more digits (0 through 9), an optional leading plus or minus sign, and an optional decimal point. LN-clause specifies the locale name for value (see LN on page 6-13). figurative-constant is a figurative constant from Table 6-4 on page 6-17. sql-datetime-literal is a DATETIME, DATE, TIME, or TIMESTAMP value in ANSI, USA, or EUROPEAN format. For details, see the SQL/MP Reference Manual or SQL/MX Reference Manual.
Definition Attributes VALUE If a field is described as signed (the PICTURE clause includes the symbol S), you can include a sign in the numeric value. The sign must be leading in all cases, regardless of whether the PICTURE clause specifies a leading or trailing sign. An initial value cannot be: • • Used with a REDEFINES or OCCURS entry Composed of a null character string ("") The only figurative constant that can be used to assign a value to a numeric data type is ZERO (or ZEROS or ZEROES).
Definition Attributes VALUE For C and Pascal, a NOVALUES clause on a group definition has no effect on subgroups defined by reference to other groups. SQLNULL is valid only for SQL-nullable elementary line items (that is, SQL items that are not specified as NOT NULL). If the type was previously defined, the definition must be an SQL-nullable field definition.
Definition Attributes 66 RENAMES Example 6-65. National-Literal Values in VALUE Clauses DEF sample-type PIC NN. DEF language-info. 02 language TYPE sample-type END. VALUE N"ab". Example 6-66. SQL-Literal Values in VALUE Clauses DEF birthday TYPE SQL DATETIME year to day. DEF family-birthday. 02 father TYPE birthday 02 mother TYPE birthday 02 sister TYPE birthday END. VALUE "1945-12-12". VALUE "1948-08-14". VALUE "1980-01-13". DEF job-schedule. 02 task1 TYPE SQL INTERVAL day 2 VALUE "12".
Definition Attributes 66 RENAMES 66 is the level number of the RENAMES clause. renames-name is a unique name. field-name is the name of a previously defined field in the dictionary. If field-name is not unique, qualify it with group-name and def-name. group-name is the name of a previously defined group in the dictionary. If group-name is not unique, qualify it with group-name and def-name.
Definition Attributes 88 Condition-Name 88 Condition-Name Note. The DDL compiler ignores this clause when generating source code for languages other than DDL and COBOL. For DDL and COBOL source code, a level-88 condition-name clause associates a condition name with a value, list of values, or range of values, enabling you to refer to the value or values by the condition name.
Definition Attributes 88 Condition-Name number is 1 or more digits (0 through 9), an optional plus or minus sign, and an optional decimal point. LN-clause specifies the locale name for value (see LN on page 6-13). figurative-constant is any figurative constant listed with the clause VALUE on page 6-76. sql-datetime-literal is a DATETIME, DATE, TIME, or TIMESTAMP value in ANSI, USA, or EUROPEAN format. For details, see the SQL/MP Reference Manual or SQL/MX Reference Manual.
Definition Attributes 88 Condition-Name Example 6-68. Condition-Name Clauses DEF cust-addr-cd. 02 addr-code 88 corp-hdq 88 shipping 88 billing 88 sales END TYPE BINARY 16. VALUE 01. VALUE 02, 03. VALUE 04 THRU 07. VALUE 11 THRU 13, 15. A COBOL program can use the construct in Example 6-68 on page 6-84 to determine the appropriate customer address: for example: IF shipping PERFORM A00-send-ship-list. Example 6-69.
Definition Attributes 89 Enumeration 89 Enumeration In a field of type ENUM, a level-89 enumeration clause associates a name and (optionally) a display string with an enumeration value. 89 value-name [ VALUE value ] [ AS-clause ] 89 is the level number of the enumeration clause. value-name is a name that uniquely identifies the enumeration value. VALUE { value | constant-name } specifies a value to associate with value-name.
Definition Attributes 89 Enumeration For C, the level-89 enumeration clauses for a field of type ENUM are translated to literals included in a C enumeration type. If the type of a single-field definition is ENUM, the DDL compiler generates a typedef enum. If the type of a field in a group definition is ENUM, the DDL compiler generates an enum embedded in a typedef: enum { value-name1 = enumeration-value1, value-name2 = enumeration-value2, ...
Definition Attributes 89 Enumeration For TACL, the level-89 enumeration clauses for a field of type ENUM are translated to SECTION directives of type TEXT followed by an ENUM for the item with which the level-89 clauses are associated: ?Section ENUMERATION-NAME1 Text ENUMERATION-VALUE1 ?Section ENUMERATION-NAME2 Text ENUMERATION-VALUE2 ... ?Section DEF-NAME Struct Begin ENUM DEF-NAME; End; Example 6-71. Enumeration Clause Output for C DDL Type C Type DEF status TYPE ENUM BEGIN. 89 no-error.
Definition Attributes 89 Enumeration Example 6-72. Enumeration Clause Output for FORTRAN DDL Type FORTRAN Type DEF status TYPE ENUM BEGIN. 89 no-error. 89 read-error. 89 write-error VALUE 3. END. C C C INTEGER*2 STATUS NO-ERROR = 0 READ-ERROR = 1 WRITE-ERROR = 3 DEF old-status TYPE status VALUE no-error. C INTEGER*2 OLDSTATUS Initial value is NO-ERROR DEF cpu. 2 state TYPE ENUM. 89 stop. 89 pause. 89 running. END.
Definition Attributes 89 Enumeration Example 6-74. Enumeration Clause Output for TACL DDL Type TACL Type DEF status TYPE ENUM BEGIN. 89 no-error. 89 read-error. 89 write-error VALUE 6. END. ?Section NO^ERROR Text 0 ?Section READ^ERROR Text 1 ?Section WRITE^ERROR Text 6 ?Section STATUS STRUCT Begin ENUM STATUS; End; DEF old-status TYPE status VALUE no-error. ?Section OLD^STATUS Struct Begin ENUM OLD^STATUS; End; DEF cpu. 2 state TYPE ENUM. 89 stop. 89 pause. 89 running. END. DEF system-state.
Definition Attributes 89 Enumeration Example 6-75. Enumeration Clause Output for pTAL or TAL DDL Type pTAL or TAL Type DEF status TYPE ENUM BEGIN. 89 no-error. 89 read-error. 89 write-error VALUE 6. 89 status-error. END. LITERAL NO^ERROR = 0, READ^ERROR = 1, WRITE^ERROR = 6, STATUS^ERROR = 7; INT STATUS; DEF old-status TYPE status VALUE no-error. INT OLD^STATUS^DEF; Value is NO^ERROR DEF cpu. 2 state TYPE ENUM. 89 stop. 89 pause. 89 running. END.
7 SPI Tokens SPI tokens are the smallest accessible units in an SPI message buffer. You can use token definitions provided by HP, and you can define your own tokens using DDL. HP supplies standard token definitions in C, COBOL, Pascal (on D-series systems), TACL, pTAL, and TAL.
SPI Tokens Defining SPI Tokens Defining SPI Tokens An SPI token has two parts: • • An identifying code A token value A token value is referenced by its token code rather than by its position in the buffer or by its address.
SPI Tokens TOKEN-TYPE TOKEN-TYPE type-name VALUE [ IS ] token-data-type { DEF [ IS ] def-name [ OCCURS number TIMES ] { { OCCURS { VARYING [ DEF [ IS ] def-name ] } { { 0 TIMES } } } } } type-name is the name of a token type. VALUE [ IS ] token-data-type identifies a token type. You can specify token-data-type either as an integer or as the name of a constant in the open dictionary.
SPI Tokens TOKEN-TYPE DEF [ IS ] def-name documents the token structure, not altering the host-language output, but enabling SPI-buffer-display software to interpret the fields of tokens defined using the token type. OCCURS 0 TIMES indicates that the token length is 0 (there is no token value). Every simple token in an SPI message has a token type to define its data type and length. You must specify the token type of a simple token in a TOKEN-TYPE statement.
SPI Tokens TOKEN-TYPE Statement Output TOKEN-TYPE Statement Output If you request C, COBOL, Pascal (on D-series systems), pTAL, TACL, or TAL source code, the DDL compiler generates compatible data structures for the requested language. The SPI routines can use these token-type data structures to identify a token and its type.
SPI Tokens Standard SPI TOKEN-TYPE Definitions Example 7-1. Standard SPI Token Definition for Simple Token With 16-Bit Integer Values TOKEN-TYPE zspi-typ-int VALUE IS zspi-tdt-int DEF IS zspi-ddl-int. ! Token name ! Token data type ! Token definition The definition zspi-ddl-int specifies the structure of all simple tokens of the token type zspi-typ-int in Example 7-1 on page 7-6: DEF zspi-ddl-int TYPE BINARY 16 SPI-NULL 0. These definitions are in the file ZSPIDEF.ZSPIDDL.
SPI Tokens Standard SPI TOKEN-TYPE Definitions Example 7-3. COBOL Source Code Generated for Example 7-2 on page 7-6 01 ZSPI-TYP-INT NATIVE-2 VALUE IS 514. 01 ASSN-TYP-STATUS NATIVE-2 VALUE IS 514. 01 ASSN-TYP-VARIABLE-TOKEN NATIVE-2 VALUE IS 1023. The DDL compiler generates the token-type value in Example 7-3 on page 7-7 by leftshifting the token length in the second (low-order) byte and combining it with the token data type in the first (high-order) byte. Example 7-4.
SPI Tokens TOKEN-CODE The generated values in Example 7-6 on page 7-7 are identical to the values generated for COBOL, TAL, or TACL source-code output from the same TOKENTYPE statements. Example 7-7.
SPI Tokens TOKEN-CODE VALUE [ IS ] token-number identifies a simple token. You can specify token-number either as an integer or as the name of a constant in the open dictionary. The value of token-number must be an integer in the range -32768 through 32767. For subsystems that you write, token-number must be in the range from 1 through 9998. Numbers outside this range are reserved by HP or are previously defined by SPI. type-name is the name of a token type in the open dictionary.
SPI Tokens TOKEN-CODE Statement Output Default display format: display format for the data type specified in the definition A token code is a 2-word structure that consists of a token type defined in a prior TOKEN-TYPE statement and the token number specified in the TOKEN-CODE statement. Every token code is implicitly or explicitly qualified by an SPI subsystem ID.
SPI Tokens Standard SPI TOKEN-CODE Definitions The file ZSPIDEF.ZSPIDDL on the disk volume chosen for your system contains the DDL definitions of the standard token codes. To use the standard SPI definitions, compile this file into your dictionary, using the DDL SOURCE command. For a complete description of the standard SPI token codes, see the SPI Programming Manual and the SPI Common Extensions Manual. Note.
SPI Tokens Standard SPI TOKEN-CODE Definitions Example 7-11. TAL Source Code Generated for Example 7-9 on page 7-11 Literal ASSN^TKN^MY^STATUS = 11D '<<' 24 + 2D '<<' 16 + 101D; Literal ASSN^TKN^STAT^REPLY = 11D '<<' 24 + 2D '<<' 16 + 102D; The value of the pTAL or TAL representation of the token code is in Example 7-11 on page 7-12 identical to the value generated for COBOL source-code output from the same TOKEN-CODE statement. Example 7-12.
SPI Tokens TOKEN-MAP TOKEN-MAP The TOKEN-MAP statement defines a token map and stores the definition in the open dictionary. If a TOKEN-MAP statement identifies a token map that already exists in the open dictionary, the DDL compiler replaces the existing token map with the new token map. If the appropriate source code file is open, the DDL compiler generates C, COBOL, Pascal (on D-series systems), pTAL, TACL, or TAL token-map structures when it executes the TOKEN-MAP statement.
SPI Tokens TOKEN-MAP def-name specifies the definition (in the open dictionary) that defines the fields in the extensible structured token. SSID subsystem-id identifies the subsystem to which the token belongs. You can specify subsystemid either as an ASCII character string (enclosed in quotation marks) or as the name of a constant in the open dictionary.
SPI Tokens TOKEN-MAP Lnn is a product version string. L is a letter. The DDL compiler treats L as uppercase whether you specify it as uppercase or lowercase. nn is a two-digit number. constant-name is the name of a constant in the open dictionary. The constant name must be a valid number or Lnn value. FOR { field-name [ { THROUGH { [ { THRU { { group-name [ { THROUGH { [ { THRU } field-name ] } } } ] } } } } } group-name ] } } } ] }.} ...
SPI Tokens TOKEN-MAP When VERSION or NOVERSION is specified for a group: • • Every field in the group inherits the product version specified for the group. No field within the group can have a VERSION or NOVERSION clause. If you specify a VERSION or NOVERSION clause for a range of fields or groups, you must not specify a VERSION or NOVERSION clause for any field or group within the range; this can result in a field having more than one product version.
SPI Tokens • Product Versions for Bit Fields Make the field larger. For example, if a field is a 16-bit integer and all 16-bit values are valid for the field, you can define the field as a 32-bit integer. Lengthening the field enables you to choose an SPI null value that creates a value in the 32-bit integer that is not one of the valid values for the 16-bit integer.
SPI Tokens • TOKEN-MAP Statement Output A substructure containing only bit fields always starts and ends on a word boundary, padded with implicit bit fillers when necessary. Such a substructure is always an even number of bytes long, which conforms to how the C, Pascal (on Dseries systems), pTAL, and TAL compilers allocate space for structures containing bit maps.
SPI Tokens Standard SPI Definitions in Token-Map Definitions Table 7-1. DDL Data Structures Generated for Token Maps Language Data Structure TACL ?Section map^name Struct BEGIN INT2 CODE VALUE v1v2; INT MAP (0:n-3) VALUE v3, ..., vn; END; For the TACL data structure, the first STRUCT variable is a double-word integer specifying the token code in the first 2 words of the token map. The rest of the STRUCT is an integer array containing one value for each remaining word in the token map.
SPI Tokens Standard SPI Definitions in Token-Map Definitions Example 7-15 on page 7-20 describes an extensible structured token with three fields and a total byte length of 12. Each field is defined by reference to a definition in the standard SPI definition file ZSPIDEF.ZSPIDDL. The referenced definition determines the data type of the field and specifies a default SPI null value for that field.
SPI Tokens Standard SPI Definitions in Token-Map Definitions Example 7-19. C Source Code Generated for Example 7-15 on page 7-20 #pragma section jobinfo_map static int jobinfo_map[] = {2303,3,12,17152,1024,2136}; Example 7-20. Pascal Source Code Generated for Example 7-15 on page 7-20 ?Section JOBINFO_MAP VAR JOBINFO_MAP : Array [1..
SPI Tokens Standard SPI Definitions in Token-Map Definitions Example 7-22. Specifying Product Version Numbers for Bit Fields DEF bits-layout-x. 02 x-1 02 x-filler 02 x-2 END Type BIT 5. Type BIT 3. Type BIT 7. TOKEN-MAP map-bits-x VALUE is 1 DEF is bits-layout-x. VERSION "D40" FOR x-1 THRU x-2. END DEF bits-layout-y. 02 y-1 02 y-2 02 y-3 END Type BIT 4. Type BIT 8. Type BIT 6. TOKEN-MAP map-bits-y VALUE is 32740 DEF is bits-layout-y. VERSION 10000 FOR y-1 THRU y-2. VERSION 15000 FOR y-3. END.
SPI Tokens Standard SPI Definitions in Token-Map Definitions Example 7-23.
SPI Tokens Standard SPI Definitions in Token-Map Definitions Example 7-23.
SPI Tokens Standard SPI Definitions in Token-Map Definitions Table 7-2.
SPI Tokens Standard SPI Definitions in Token-Map Definitions In Example 7-26 on page 7-26, the field bits-2 cannot have a product version number because the DDL compiler puts bits-2 in the same byte as bits-3, for which NOVERSION is specified: Example 7-26. Incorrect Use of Version Numbers for Bit Fields DEF bit-ddl-ex-b. 02 bits-8 02 bits-3 02 bits-2 02 bits-10 02 bits-1 END. Type Type Type Type Type BIT BIT BIT BIT BIT 8. 3 SPI-NULL 255. 2. 10. 1 SPI-NULL 255.
8 Dictionary-Manipulation Statements Table 8-1.
Dictionary-Manipulation Statements DELETE token-name is a name that uniquely identifies an existing token code in the open dictionary. You can specify token-name up to 50 times. map-name is a name that uniquely identifies an existing token map in the open dictionary. You can specify map-name up to 50 times. type-name is a name that uniquely identifies an existing token type in the open dictionary. You can specify type-name up to 50 times.
Dictionary-Manipulation Statements DELETE Example 8-1. Deleting a Record Interactively 03> VOLUME $data.sales Go to subvolume with dictionary. 04> DDL Run DDL compiler. !?DICT Open dictionary. !DELETE RECORD employee. Delete record. Example 8-2 on page 8-3 deletes a definition called zip-cd that is referenced by two other definitions (addr and custinfo), one of which (addr) is referenced by two records (customer and supplier). Example 8-2.
Dictionary-Manipulation Statements EXIT EXIT The EXIT statement ends the DDL session, closes any files that were opened in the session, and returns control to the command interpreter. EXIT [ . ] When you run the DDL compiler interactively, an EXIT statement stops the DDL compiler and returns control to the command interpreter. When you run the DDL compiler noninteractively, an EXIT statement within the schema stops the DDL compiler at that point and returns control to the command interpreter.
Dictionary-Manipulation Statements OUTPUT OUTPUT The OUTPUT statement reads objects from the open dictionary and writes them to any open DDL schema file, FUP source code file, REPORT file, or host-language source code file. OUTPUT { { { { { { { { { { { { { { { { { { { CONSTANT { constant-name ... } } { * } } } DEF[INITION] { def-name ... } } { * } } } RECORD { record-name ... } } { * } } } TOKEN-CODE { token-name ... } } { * } } } TOKEN-MAP { map-name ... } } { * } } } TOKEN-TYPE { type-name ...
Dictionary-Manipulation Statements OUTPUT type-name is a name that uniquely identifies an existing token type in the open dictionary. You can specify type-name up to 50 times. * specifies either all objects of the given type or, when no type is specified, all objects. OUTPUT is used to write DDL objects from the open dictionary to any open DDL, FUP, REPORT or language source code files. OUTPUT cannot be used to generate output for Pathmaker objects.
Dictionary-Manipulation Statements OUTPUT UPDATE Example 8-7. OUTPUT * Statement 15>DDL Run DDL compiler. !?DICT Open dictionary. !?DDL ddlsrc Open and clear DDL source code file. !OUTPUT *. Write all entries from dictionary to ddlsrc. !?NODDL Close DDL source code file. !?FUP fupsrc Open and clear FUP source code file. !OUTPUT RECORD *. Write all records from dictionary to fupsrc.
Dictionary-Manipulation Statements OUTPUT UPDATE def-name is a name that uniquely identifies an existing definition in the open dictionary. You can specify def-name up to 50 times. type-name is a name that uniquely identifies an existing token type in the open dictionary. You can specify type-name up to 50 times. The OUTPUT UPDATE statement is useful only when you want to modify or delete an object that might be referenced by one or more other dictionary objects.
Dictionary-Manipulation Statements OUTPUT UPDATE Example 8-9. OUTPUT UPDATE Statement 20>DDL dict Run DDL compiler, opening dictionary in current subvolume. !?DDL myfile Open DDL source code file. !OUTPUT UPDATE zip-cd. Write update source to myfile. Close myfile before editing it. !?NODDL !?EDIT myfile ... Change definition of zip-cd. *EXIT Exit from the editor. !?SOURCE myfile Compile the contents of myfile into the dictionary. Example 8-10.
Dictionary-Manipulation Statements OUTPUT UPDATE Example 8-10. Contents of myfile After Example 8-9 on page 8-9 (page 2 of 2) ?Section CUSTOMER. Record CUSTOMER. File is "$data.sales.customer" Key-sequenced. Audit. Definition is CUSTINFO. Key is CUSTNUM duplicates not allowed. Key "cn" is CUSTNAME. End. ?Section SUPPLIER. Record SUPPLIER. File is "$data.sales.supplier" Key-sequenced. Audit. Definition is SUPPINFO. Key is SUPPNUM duplicates not allowed. Key "su" is SUPPNAME. End. Note.
Dictionary-Manipulation Statements SHOW USE OF SHOW USE OF The SHOW USE OF statement lists the objects in the open dictionary that directly or indirectly refer to specified objects. SHOW USE OF { CONSTANT constant-name [, constant-name ]... } { [ DEF[INITION] ] def-name [, def-name ]... } { TOKEN-TYPE type-name [, type-name ]... } constant-name is the name of a constant in the open dictionary. You can specify constant-name up to 50 times.
Dictionary-Manipulation Statements SHOW USE OF The SHOW USE OF listing includes a number to indicate the nesting level of the objects it displays. Any objects that refer directly to a specified object are at nesting level 1; any objects that refer directly to an object at level 1 are at nesting level 2; and so forth.
Dictionary-Manipulation Statements SHOW USE OF Example 8-13. SHOW USE OF Listing Sequence ?DICT SHOW USE OF DEF custnum, name.
9 DDL Compiler Commands DDL compiler commands instruct the DDL compiler to perform specific actions. Commands can be: • • • Placed anywhere in a DDL source code file Passed to the DDL compiler as part of the RUN DDL command Entered at your terminal when you run DDL interactively For rules governing how you enter DDL commands, see Commands on page 2-18.
DDL Compiler Commands . Table 9-1. Dictionary Commands Command Description [NO]DICT Opens [closes] a dictionary (A) Starts [stops] writing object definitions to the dictionary (S) DICTN Creates and opens a nonaudited dictionary or opens an existing dictionary (A) Writes subsequent object definitions to the dictionary (S) DICTR Opens an existing dictionary for read-only access (A) [NO]SAVE Saves [purges] the open dictionary when that dictionary is closed (S) Table 9-2.
DDL Compiler Commands Table 9-3.
DDL Compiler Commands Table 9-6.
DDL Compiler Commands Table 9-9. TACL Source Output Commands Command Description [NO]TACL Opens [closes] a TACL source code file (A) Starts [stops] writing translated DDL object definitions to the TACL source code file (S) TACLGEN Specifies a TACL source code generation product version Table 9-10.
DDL Compiler Commands Table 9-11.
DDL Compiler Commands ANSICOBOL ANSICOBOL The [NO]ANSICOBOL command generates COBOL output in ANSI [TANDEM] format. [NO]ANSICOBOL Default: NOANSICOBOL ANSICOBOL generates COBOL output in ANSI format. NOANSICOBOL generates COBOL output in TANDEM format. ANSI and TANDEM formats are described in the COBOL Manual for TNS and TNS/R Programs and the COBOL Manual for TNS/E Programs. In Table 9-1 on page 9-2, the DDL compiler opens a COBOL source code file, COBSRC, and adds the definition for NAME to that file.
DDL Compiler Commands C Example 9-2. NOANSICOBOL Command DDL Input ?NOANSICOBOL ?COBOL COBSCR1 ?OUTPUT DEF name. DDL Output (COBOL Code) * SCHEMA PRODUCED DATE - TIME : 9/14/2004 - 18:07:27 ?SECTION NAME,TANDEM * Definition NAME created on 09/14/2004 at 18:07 01 NAME. 02 LAST-NAME PIC X(12). 02 FIRST-NAME PIC X(8). 02 MIDINIT PIC X(2).
DDL Compiler Commands C Default: home terminal ! purges the contents of c-source-file before opening it, if it exists. If c-source-file does not exist, the exclamation point has no effect. Without the exclamation point, the DDL compiler appends the new C source code statements to the end of c-source-file, and does not replace any existing objects. NOC closes any open C source code file and stops translating DDL object definitions to C source code statements.
DDL Compiler Commands C When generating C source code, the DDL compiler ignores these clauses: • • • • • • • • • • • DISPLAY HEADING HELP INDEXED BY MUST BE NULL OCCURS DEPENDING ON TACL UPSHIFT USAGE IS INDEX 88 condition-name In some cases, the DDL compiler ignores the NOVALUES clause. (For more information, see VALUES on page 9-115.
DDL Compiler Commands Example 9-3.
DDL Compiler Commands C00CALIGN C00CALIGN The [NO]C00CALIGN command generates C code according to C00 [pre-C00] alignment rules. [NO]C00CALIGN Default: C00CALIGN C00CALIGN generates C code according to C00 alignment rules. NOC00CALIGN generates C code according to pre-C00 alignment rules. When using rules prior to C00, all substructures must be word aligned and an even number of bytes in length. When using earlier rules, substructures that contain only byte data can be byte aligned or odd length.
DDL Compiler Commands CCHECK You can stop C syntax checking by specifying NOCCHECK; you can restart checking with a subsequent CCHECK. The DDL compiler does not perform the lengthy testing performed by the C compiler. The DDL compiler tests the DDL statements to ensure that they follow the rules specified by C: • A name cannot be longer than 31 ASCII characters. A name might become longer because the DDL compiler appends _def to the name of a definition or record.
DDL Compiler Commands CDEFINEUPPER CDEFINEUPPER The [NO]CDEFINEUPPER command generates C #define names in uppercase [lowercase] letters. [NO]CDEFINEUPPER Default: CDEFINEUPPER CDEFINEUPPER generates C #define names in uppercase letters. NOCDEFINEUPPER generates C #define names in lowercase letters. CFIELDALIGN_MATCHED2 The CFIELDALIGN_MATCHED2 command generates C structures that are compatible with pTAL and TAL structures.
DDL Compiler Commands CFIELDALIGN_MATCHED2 The C source code for a struct generated with CFIELDALIGN_MATCHED2 set is preceded by the statement: #pragma fieldalign shared2 __struct-name where __struct-name is the name of the struct. When generating C source with MATCHED2 alignment, the DDL compiler allows substructures to start on an odd-byte boundary. Without matched2 alignment, C substructures must start on a word boundary.
DDL Compiler Commands CFIELDALIGN_MATCHED2 Example 9-5. CFIELDALIGN_MATCHED2 and C00CALIGN Commands C Structure struct s1 { struct { char c[3]; } ss2; char y; } s1; Alignment of s1 with CFIELDALIGN_MATCHED2 Members of s1 can start on odd-byte boundaries. Byte 0 1 c [0] 2 c [1] 3 c [2] 1 word y 1 word VST008.vsd Alignment of s1 with C00CALIGN All structures and substructures must begin and end on even-byte boundaries.
DDL Compiler Commands CFIELDALIGN_MATCHED2 Example 9-6. CFIELDALIGN_MATCHED2 Command C Structure struct s3 { char x; struct { char c[3]; } ss4; char y; } s3; Alignment of s3 with Default Alignment All structures and substructures must begin and end on even-byte boundaries. Byte 0 1 x 2 filler 3 c [0] 1 word 4 1 word 5 c [2] c [1] 6 filler 7 filler y 1 word 1 word VST010.vsd Alignment of s3 with CFIELDALIGN_MATCHED2: Members of the structure can start on odd-byte boundaries.
DDL Compiler Commands CIFDEF, CIFNDEF, and CENDIF CIFDEF, CIFNDEF, and CENDIF The CIFDEF, CIFNDEF, and CENDIF commands generate the compiler directives #ifdef, #ifndef, and #endif, respectively, for C output. { CIFNDEF } identifier_name { CIFDEF } CENDIF identifier_name is the name of the identifier affected by the command. The DDL compiler does not store identifier-name in the dictionary. Each CIFNDEF or CIFDEF command have a corresponding CENDIF command.
DDL Compiler Commands CIFDEF, CIFNDEF, and CENDIF Example 9-7. CIFNDEF, CIFDEF and CENDIF commands 10> DDL !?C CSRC !?CIFNDEF !CONSTANT !?CIFDEF !CONSTANT !?NOC EMP EMP VALUE "JYOTI". EMP EMP VALUE "RAM". !?C CSRC Output source for C is opened on $ADE101.BUG.CSRC !?CIFNDEF EMP !CONSTANT EMP VALUE "JYOTI". Constant EMP defined. C output produced for EMP. !?CIFDEF EMP !CONSTANT EMP VALUE "RAM". Constant EMP defined. C output produced for EMP. !?CENDIF !?CENDIF !?NOC Output source for C is closed.
DDL Compiler Commands CLISTIN CLISTIN The [NO]CLISTIN command includes [excludes] subsequent user-defined dictionary comments in [from] the compiler listing. [NO]CLISTIN Default: CLISTIN CLISTIN includes subsequent user-defined dictionary comments in the compiler listing. NOCLISTIN excludes subsequent user-defined dictionary comments from the compiler listing. You can suppress comments on the output listing with NOCLISTIN and subsequently resume listing comments with CLISTIN.
DDL Compiler Commands CLISTOUT Example 9-8. CLISTIN and NOCLISTIN Commands (page 2 of 2) DDL Compiler Listing Comment from source code file *Comment for AA DEF aa PIC X(24). Definition AA size is 24 bytes. Production comment ?NOCLISTIN DEF bb PIC X(10). Definition BB size is 10 bytes. Production comment ?CLISTIN *Comment for CC Comment from source code file DEF cc PIC 9(6). Definition CC size is 24 bytes.
DDL Compiler Commands CLISTOUT CLISTOUTDETAIL causes the DDL compiler to reproduce any comments previously associated with a referenced definition. If a definition or record refers to a definition that has a comment and CLISTOUTDETAIL is in effect, the DDL compiler reproduces the comment in the source code just before the referenced definition. CLISTOUTDETAIL does not reproduce comments for definitions referenced by a token map or a token type.
DDL Compiler Commands COBCHECK COBCHECK The [NO]COBCHECK command performs [suppresses] COBOL syntax checks on subsequent DDL object definitions without generating code. [NO]COBCHECK Default: COBCHECK if a COBOL source code file is open, otherwise NOCOBCHECK COBCHECK performs COBOL syntax checks as though COBOL source code were being produced. NOCOBCHECK suppresses COBOL syntax checks. If a COBOL source code file is open, the compiler performs the COBOL checks whether or not COBCHECK is set.
DDL Compiler Commands COBCHECK • No more than 3 levels of nested OCCURS can be in a COBOL data-description entry. • An item specified as a key in a RECORD statement must be alphanumeric. To use a numeric field as a key, enclose it within a group and specify the group as the key; a group’s data type is assumed to be alphanumeric regardless of the data types of its member fields. Example 9-10. COBCHECK and NOCOBCHECK Commands ?COBCHECK RECORD customer. FILE IS "$data.sales.customer" KEY-SEQUENCED.
DDL Compiler Commands COBLEVEL COBLEVEL The COBLEVEL command specifies a level-numbering scheme for COBOL output. COBLEVEL [ base [ , increment ] ] base is the starting level number. Default: 1 increment is the number of levels to skip. Default: 1 The formula for calculating COBLEVEL level numbers is: cobol-level := base + (increment * ( level - 1 )) Here, level is the level number of the item within the dictionary; it can be any value from 0 to 49.
DDL Compiler Commands COBOL COBOL The [NO]COBOL command: • • Opens [closes] a COBOL source code file Starts [stops] writing translated DDL object definitions to the COBOL source code file { COBOL [ cobol-source-file [ ! ] ] } { NOCOBOL } Default: NOCOBOL COBOL closes any open COBOL source code file, opens cobol-source-file, translates subsequent DDL objects defined by statements or specified in OUTPUT statements to COBOL source code statements, and writes the COBOL source code statements to cobol-sourc
DDL Compiler Commands COBOL For the data types that the DDL compiler generates for COBOL, see Table C-2 on page C-3. The compiler can translate DDL objects specified in an OUTPUT statement only if the dictionary containing these structures is open. Only one COBOL source code file can be open at a time. If you use the COBOL command when you already have a COBOL source code file open, the DDL compiler closes the current source code file before opening the new source code file.
DDL Compiler Commands COBOL Example 9-12. COBOL Command (page 2 of 2) DDL Output (COBOL Code) ?SECTION NAME,TANDEM 01 NAME. 02 LAST-NAME 02 FIRST-NAME 02 MIDINIT PIC X(12). PIC X(8). PIC X(2). In Example 9-13 on page 9-28, the DDL compiler retrieves the record, CUSTOMER, from the open dictionary, translates it to COBOL source code, and appends the source code to the open COBOL file. Example 9-13. COBOL Command DDL Input 28> DDL !?DICT $data.sales !?COBOL $data.sales.cobsrc !?OUTPUT RECORD customer.
DDL Compiler Commands COLUMNS COLUMNS The COLUMNS command specifies the number of significant columns (character positions) on DDL input lines. COLUMNS num num is an integer from 12 through 132 that specifies the number of significant columns (character positions) on DDL input lines. Default: 132 Changing the value of COLUMNS also changes the maximum string length for DDL. COMMENTS The [NO]COMMENTS command includes [excludes] subsequent user-defined dictionary comments in [from] the open dictionary.
DDL Compiler Commands COMMENTS In Example 9-14 on page 9-30, the two comment lines preceding the group definition of NAME are stored as a single comment associated with NAME in the open dictionary, and three starred comment lines are each associated with an element within the group definition NAME. The comments are also written to the open COBOL source code file COBSRC (preceding NAME and CUSTNAME), where they are inherited by the definition CUSTNAME, which refers to NAME. Example 9-14.
DDL Compiler Commands COMMENTS Example 9-15. COMMENTS Command DDL Input ?DICT ?COBOL ?TAL ?TACL ?COMMENTS ?CLISTOUT ?NOTIMESTAMP *Token type for enumerated tokens TOKEN-TYPE zspi-typ-enum VALUE IS zspi-tdt-enum DEF IS zspi-ddl-enum. DDL Output (C Code) /* Token type for enumerated tokens */ #pragma section zspi_typ_enum #define ZSPI_TYP_ENUM 2818u DDL Output (COBOL Code) *Token type for enumerated tokens 01 ZSPI-TYP-ENUM NATIVE-2 VALUE IS 2818.
DDL Compiler Commands CPRAGMA CPRAGMA The [NO]CPRAGMA command includes [excludes] #pragma-generating code in C output. Caution. The memory layout of the other machine might be different from the layout on a HP NonStop system. [NO]CPRAGMA Default: CPRAGMA CPRAGMA includes #pragma-generating code in C output. NOCPRAGMA encloses #pragma-generating code within the C comment characters. This allows you to use the C code on systems whose C compilers do not support #pragmas.
DDL Compiler Commands CTOKENMAP_ASDEFINE Example 9-16. CTOKENMAP_ASDEFINE Command (page 1 of 4) $ADE101 JYOTI1 51> DDL DDL Compiler T9100ABQ - (15NOV99) SYSTEM \BOMBAY COPYRIGHT TANDEM COMPUTERS INCORPORATED 1978, 1979, 1981, 1982, 1986-1999 !?DICT Audited dictionary created on subvol $ADE101.JYOTI1. Dictionary opened on subvol $ADE101.JYOTI1 for update access. !?C /* SCHEMA PRODUCED DATE - TIME : 8/02/2000 - 15:03:17 */ Output source for C is opened on $ZTN1.#PTPJHZ4 !?CTOKENMAP_ASDEFINE !DEF EMP.
DDL Compiler Commands CTOKENMAP_ASDEFINE Example 9-16. CTOKENMAP_ASDEFINE Command (page 2 of 4) #define emp1_def_Size 0 C output produced for EMP1. !TOKEN-MAP MAP3 VALUE 150 DEF EMP1. !VERSION "C00" FOR F2. !END. Token Map MAP3 defined. Token Map MAP3 added to dictionary. #pragma section map3 /* Token Map MAP3 created on 08/02/2000 at 15:05 */ #define MAP3 { 2303, 150, 500, 17152, -1, -2561 } C output produced for MAP3. !?CDEFINEUPPER !OUTPUT *.
DDL Compiler Commands CTOKENMAP_ASDEFINE Example 9-16. CTOKENMAP_ASDEFINE Command (page 3 of 4) Loading Token-Map MAP1 #pragma section map1 /* Token Map MAP1 created on 08/02/2000 at 15:03 */ #define map1 { 2303, 1, 2, 17152, 767 } C output produced for MAP1. Loading Token-Map MAP2 #pragma section map2 /* Token Map MAP2 created on 08/02/2000 at 15:04 */ #define map2 { 2303, 20, 2, 17152, 767 } C output produced for MAP2.
DDL Compiler Commands Example 9-16. CTOKENMAP_ASDEFINE Command (page 4 of 4) Loading Token-Map MAP3 #pragma section map3 /* Token Map MAP3 created on 08/02/2000 at 15:05 */ static short map3[] = { 2303, 150, 500, 17152, -1, -2561 }; C output produced for MAP3. ! CUNDEF The CUNDEF command generates a #undef compiler directive for C output. CUNDEF identifier_name identifier_name is the name of the identifier affected by the #undef directive.
DDL Compiler Commands C_DECIMAL Example 9-17. CUNDEF Command (page 2 of 2) DDL Output (C Code) /* SCHEMA PRODUCED DATE - TIME : 3/10/2000 - 20:05:28 */ #pragma section emp /* Constant EMP created on 03/10/2000 at 20:05 */ #define EMP "JYOTI" #ifdef EMP #undef EMP #endif C_DECIMAL The [NO]C_DECIMAL command generates decimal [char] output for subsequent C simple numeric items. [NO]C_DECIMAL Default: NOC_DECIMAL C_DECIMAL generates decimal output for subsequent C simple numeric items.
DDL Compiler Commands C_DECIMAL Example 9-18. C_DECIMAL and NOC_DECIMAL Commands (page 2 of 3) !?C !OUTPUT *. !?C_DECIMAL !OUTPUT *. !?NOC_DECIMAL !OUTPUT *. !DEF EMP1. !02 ITEM1 PIC 9(5). !02 ITEM2 PIC 9(5) !END. !?C_DECIMAL !OUTPUT DEF EMP1. COMP. !?DICT Audited dictionary created on subvol $ADE101.BUG. Dictionary opened on subvol $ADE101.BUG for update access. !DEF EMP. !02 ITEM1 PIC 9(5). !02 ITEM2 PIC 9(6). !END. Definition EMP size is 11 bytes. Definition EMP added to dictionary.
DDL Compiler Commands C_DECIMAL Example 9-18. C_DECIMAL and NOC_DECIMAL Commands (page 3 of 3) !?NOC_DECIMAL !OUTPUT *. Loading Definition EMP #pragma section emp /* Definition EMP created on 03/06/2000 at 17:13 */ #pragma fieldalign shared2 __emp typedef struct __emp { char item1[5]; char item2[6; } emp_def; C output produced for EMP. !DEF EMP1. !02 ITEM1 PIC 9(5). !02 ITEM2 PIC 9(5) COMP. !END. Filler emitted at level 2 after ITEM1 Definition EMP1 size is 10 bytes. Definition EMP1 added to dictionary.
DDL Compiler Commands C_MATCH_HISTORIC_TAL C_MATCH_HISTORIC_TAL The [NO]C_MATCH_HISTORIC_TAL command generates [suppresses] C data structures that are equivalent to pTAL, TAL, and COBOL data structures.
DDL Compiler Commands C_MATCH_HISTORIC_TAL Example 9-19 on page 9-41 shows the C source generated for the given DDL source with C_MATCH_HISTORIC_TAL in effect which allows substructures to start and end on odd-byte boundaries. If the C_MATCH_HISTORIC_TAL command is not in effect, C source will not be generated for def f because substructure j starts on an odd-byte boundary. The DDL compiler emits a filler at level 2 after k because the following data items will not fit in the remaining byte. Example 9-19.
DDL Compiler Commands DDL Example 9-19.
DDL Compiler Commands DDL DDL closes any open DDL source code file, opens ddl-source-file, translates subsequent DDL objects defined by statements or specified in OUTPUT statements to DDL source code statements, and writes the DDL source code statements to ddl-source-file. ddl-source-file is the name of the DDL source code file to be created, if necessary, and opened.
DDL Compiler Commands DDL The specified DDL source code file must be an EDIT file, an unstructured file, or a sequential device such as a terminal, a spooler, or a process. If the file exists but is not one of these types, the DDL compiler issues an error message and does not open the file. Each DDL object translated to DDL source is written to the source code file in a separate section that has the same name as the DDL structure it contains.
DDL Compiler Commands DEFLIST Example 9-20. DDL Command (page 2 of 2) DDLSRC ?Section NAME Definition NAME. 02 LAST-NAME 02 FIRST-NAME 02 MIDINIT End Pic "X(12)" UPSHIFT. Pic "X(8)" UPSHIFT. Pic "X(2)" UPSHIFT. ?Section ADDR Definition ADDR. 02 ADDRESS 02 CITY 02 STATE 02 ZIP-CODE End Pic Pic Pic Pic ?Section CUSTNUM Definition CUSTNUM Pic "X(4)". "X(22)". "X(14)". "X(2)". "9(5)". ?Section CUSTOMER Record CUSTOMER. File is "CUSTOMER" Key-sequenced. 02 CUSTNUM Type *. 02 CUSTNAME Type NAME.
DDL Compiler Commands DEFLIST DEFLIST includes in the compiler listing the level number, name, size, and byte offset of definitions referenced by a DEFINITION or RECORD statement. NODEFLIST excludes from the the compiler listing the level number, name, size, and byte offset of definitions referenced by a DEFINITION or RECORD statement. DEFLIST can be useful when a referenced definition is included in generated source code files.
DDL Compiler Commands DICT Example 9-21.
DDL Compiler Commands DICT dict-subvol-name is the name of the dictionary subvolume, which has this form: [\node-name.][$volume-name.][subvolume-name] Syntax Element Default dict-subvol-name Current system, volume, and subvolume node-name Current system volume-name Current volume subvolume-name Current subvolume ! purges existing dictionary files in dict-subvol-name and creates new dictionary files there.
DDL Compiler Commands DICTN The file security of the dictionary files is the default file security of whoever compiles the DDL source that creates the dictionary. Only one dictionary can be open at a time. If you use the DICT command when you already have a dictionary open, the DDL compiler closes the current dictionary before opening the specified dictionary.
DDL Compiler Commands DICTN dict-subvol-name is the name of the dictionary subvolume, which has this form: [\node-name.][$volume-name.][subvolume-name] Syntax Element Default dict-subvol-name Current system, volume, and subvolume node-name Current system volume-name Current volume subvolume-name Current subvolume ! purges existing dictionary files in dict-subvol-name and creates new dictionary files there.
DDL Compiler Commands DICTR If a dictionary already exists, you can either: • Purge the dictionary and re-create it by specifying an exclamation point after the subvolume name. • Add new DDL objects to the dictionary by omitting the exclamation point. For a Pathmaker dictionary, DICTN! deletes only the dictionary, not Pathmaker objects (services, servers, requesters, and screens); Pathmaker objects can be modified or deleted only within the Pathmaker environment.
DDL Compiler Commands DO_PTAL_ON If you use the DICTR command when you already have a dictionary open, the DDL compiler closes the current dictionary before opening the specified dictionary. The DDL compiler ignores the NOSAVE command when a dictionary is opened with DICTR. DO_PTAL_ON The DO_PTAL_ON[OFF] command generates code that cannot [can] be compiled by older pTAL or TAL compilers that do not recognize FIELDALIGN clauses.
DDL Compiler Commands EDIT Example 9-22.
DDL Compiler Commands EDIT When you stop an EDIT process by issuing the EXIT command, control returns to the DDL compiler. You must close any source code file before editing it. For instance, if you have opened a COBOL source code file, entered some text in this file, and then want to view it with the text editor, you must issue the NOCOBOL command before you issue the EDIT command.
DDL Compiler Commands ERRORS Example 9-23. EDIT Command (page 2 of 2) * EXIT Stop the EDIT process. !EXIT Exit DDL. ERRORS The ERRORS command specifies the number of errors allowed before compilation stops. ERRORS [ max-errors ] Default: Compilation continues until the end of the source code file regardless of the number of errors max-errors is a number from 1 through 32,767 that specifies the maximum number of compilation errors allowed before the DDL compiler stops compiling the source code file.
DDL Compiler Commands EXPANDC EXPANDC The [NO]EXPANDC command generates a C referenced type definition inline [as a structure name]. [NO]EXPANDC Default: NOEXPANDC EXPANDC generates a referenced type definition inline. NOEXPANDC generates a referenced type definition as a structure name. A referenced definition type is a type of a line item and is a definition defined prior to the line item that references it. In C applications, a structure being referenced by a line item is not always in the same module.
DDL Compiler Commands EXPANDC Example 9-25. EXPANDC Command (page 2 of 2) C Output DDL Definition With NOEXPANDC With EXPANDC def d type b. typedef b_def d_def; typedef struct __d short b1; char b2[10]; struct { short b31; char b32[10]; } b3[5]; } d_def; def e. 2 e1 type c. 2 e2 type d Occurs 15 times. end.
DDL Compiler Commands FIELDALIGN_SHARED8 FIELDALIGN_SHARED8 The FIELDALIGN_SHARED8 command stores data structures in the dictionary with SHARED8 alignment. FIELDALIGN_SHARED8 Use the FIELDALIGN_SHARED8 command to generate TAL (pTAL) or C source code that will produce optimal performance on a RISC processor.
DDL Compiler Commands FILLER Example 9-26. FIELDALIGN_SHARED8 Command (page 2 of 2) DDL Output (C Code) #pragma section e /* Definition E created on 10/13/1995 at 13:23 */ typedef char e_def; #pragma section f /* Definition F created on 10/13/1995 at 13:23 */ #pragma fieldalign shared8 __f typedef struct __f { short g; struct { e_def i; char filler_0; a_def j; } h; char k; char filler_1; short l; } f_def; FILLER The FILLER command specifies the algorithm for generating filler bytes for source code.
DDL Compiler Commands FILLER The DDL compiler removes only filler bytes generated by the DDL compiler; it never removes user-specified filler bytes. When the CFIELDALIGN_MATCHED2 command is set, the DDL compiler uses a modified, extended FILLER 1. In this case, the DDL compiler ignores any FILLER 0 specification.
DDL Compiler Commands FILLER Example 9-27. FILLER Command DDL Input (Definition Statements) DEF test1. 02 a 02 b END PIC XX. PIC S9(4) DEF case1. 02 c 02 test1 END PIC X. TYPE *. DEF case2. 02 test1 02 c END TYPE *. PIC X. COMP. DDL Output (COBOL Code) with FILLER 1 01 CASE1. 02 C 02 FILLER 02 TEST1. 03 A 03 B 01 CASE2. 02 TEST1. 03 A 03 B 02 C PIC X. PIC X(1). PIC XX. PIC S9(4) COMP. PIC XX. PIC S9(4) PIC X. COMP. DDL Output (COBOL Code) with FILLER 0 01 CASE1. 02 C 02 TEST1.
DDL Compiler Commands FORCHECK When FILLER 0 is specified, the structure of TEST1 in CASE1 differs from the structure of TEST1 in CASE2. A COBOL program containing these data structures can not successfully execute the preceding MOVE statement. Caution. Mixing FILLER 1 and FILLER 0 can cause the DDL compiler to generate unusable code.
DDL Compiler Commands FORTRAN Example 9-28. FORCHECK Command ?FORCHECK RECORD long. FILE IS "$data.sales.long" KEY-SEQUENCED. 02 lfield PIC X(256). 02 sfield PIC X KEYTAG 0. END Record LONG size is 257 bytes. *** WARNING *** FORTRAN OUTPUT DIAGNOSTICS.
DDL Compiler Commands FORTRAN If fortran-source-file is an EDIT file, and it exceeds 99,999 lines, the DDL compiler issues FILE ERROR - filename - Edit file line number too large (537) on page A-18. Default: home terminal ! purges the contents of fortran-source-file before opening it, if it exists. If fortran-source-file does not exist, the exclamation point has no effect. Without the exclamation point, the DDL compiler appends the new FORTRAN source code statements to the end of fortran-source-file.
DDL Compiler Commands FORTRAN Unless the command FORTRANUNDERSCORE on page 9-66 is in effect, the DDL compiler discards any hyphens in a DDL name before writing the name to FORTRAN source code. Note. The DDL compiler translates objects named A-B and AB to data structures that have the same name in FORTRAN (unless FORTRANUNDERSCORE has been specified). FORTRAN does not support unsigned numbers. If you specify an unsigned number, the DDL compiler translates it to a FORTRAN signed integer.
DDL Compiler Commands FORTRANUNDERSCORE Example 9-29.
DDL Compiler Commands FUP FUP The [NO]FUP command: • • Opens [closes] a FUP source code file Starts [stops] writing translated DDL object definitions to the FUP source code file { FUP [ fup-source-file [ ! ] } { NOFUP } Default: NOFUP FUP closes any open FUP source code file, opens fup-source-file, translates subsequent DDL objects defined by statements or specified in OUTPUT statements to FUP source code statements, and writes the FUP source code statements to fup-source-file.
DDL Compiler Commands FUP Only one FUP source code file can be open at a time. If you use the FUP command when you already have a FUP source code file open, the DDL compiler closes the current source code file before opening the new source code file. If the FUP source code file source code file already exists and the exclamation point is omitted, the DDL compiler appends the new FUP file-creation commands to the end of the file. The DDL compiler does not replace any existing commands in the file.
DDL Compiler Commands Example 9-30. FUP Command (page 2 of 2) DDL Output (FUPSRC Content) < SECTION CUSTOMER RESET SET ALTKEY ( "cn", KEYOFF 4, KEYLEN 22, FILE 0 ) SET NO ALTCREATE SET ALTFILE ( 0, $data.sales.custome0 ) SET TYPE K SET KEYLEN 4 SET REC 69 SET BLOCK 4096 SET IBLOCK 4096 SET AUDIT SET MAXEXTENTS 100 SET EXT( 4, 32 ) CREATE $data.sales.customer RESET SET TYPE K SET KEYLEN 28 SET REC 28 SET BLOCK 4096 SET IBLOCK 4096 SET EXT( 4, 32 ) SET AUDIT SET MAXEXTENTS 100 CREATE $data.sales.
DDL Compiler Commands HELP HELP The HELP command briefly describes a specified command or all commands. HELP [ command ] command is the name, or the beginning of the name, of a DDL command. If you specify the first one or more characters of a command, the DDL compiler returns information about the first command (in alphabetic order) that matches the string of characters. Default: all DDL commands Example 9-31.
DDL Compiler Commands LIST Example 9-33. LINECOUNT Command 37> DDL/IN myschema,OUT $S.#printer/LINECOUNT 60 Example 9-34 on page 9-71 sets the number of lines per page for a schema report to 24. Example 9-34. LINECOUNT Command 38> DDL !?REPORT $S.#printer !?LINECOUNT 24 !?SOURCE myschema !EXIT LIST The LIST command includes [excludes] subsequent DDL source lines in [from] the compiler listing. [NO]LIST Default: LIST LIST includes subsequent DDL source lines in the compiler listing.
DDL Compiler Commands NCLCONSTANT Example 9-35. LIST and NOLIST Commands *beginning of source code file List source lines by default. ... ?NOLIST ... Starting with this command, stop listing source lines. ?LIST ... Resume listing source lines.
DDL Compiler Commands NCLCONSTANT ! purges the contents of NCL-source-file before opening it, if it exists. If NCL-source-file does not exist, the exclamation point has no effect. Without the exclamation point, the DDL compiler appends the new NCL source code statements to the end of NCL-source-file. NONCLCONSTANT closes any open NCL source code file and stops translating DDL constant definitions to NCL source code statements.
DDL Compiler Commands NCLCONSTANT Example 9-36. NCLCONSTANT Command DDL Input ?NCLCONSTANT $vol.subvol.myncl ! constant val-1 value 1. constant VAL-2 value 2. constant val-abc value "abc". constant Val-3 value 3. ! for the following definition, DDL generates a warning ! message and does not translate def-1 to NCL definition def-1. 02 a pic x(10). end. constant val-4 value 4. ?NONCLCONSTANT constant val-5 constant val-6 value 5. value 6. ?NCLCONSTANT $vol.subvol.myncl constant val-7 value 7.
DDL Compiler Commands NEWFUP_FILEFORMAT NEWFUP_FILEFORMAT The NEWFUP_FILEFORMAT command specifies file format 2 for all FUP source code files and all FUP alternate key files. { NEWFUP_FILEFORMAT | OLDFUP_FILEFORMAT | NOFILEFORMAT } Default: NOFILEFORMAT on page 9-77 The format specification of a file for a record will not be stored in the DDL dictionary.
DDL Compiler Commands NEWFUP_FILEFORMAT Example 9-37. NEWFUP_FILEFORMAT Command (page 1 of 2) 20> DDL ?DICT ?NEWFUP_FILEFORMAT DEF EMP. 02 EMP-NAME PIC X(20). 02 EMP-ID PIC 9(4) COMP. 02 EMP-SALARY PIC 9(6)V9(2). END. ?FUP RECORD EMPL. FILE IS "EMPLOYEE". DEF IS EMP. KEY IS EMPL.EMP-ID. KEY "MN" IS EMPL.EMP-NAME. END. ?DICT Audited dictionary created on subvol $ADE101.MANUAL. Dictionary opened on subvol $ADE101.MANUAL for update access. ?NEWFUP_FILEFORMAT DEF EMP. 02 EMP-NAME PIC X(20).
DDL Compiler Commands NOFILEFORMAT Example 9-37.
DDL Compiler Commands NOFILEFORMAT For files with no format specification, the maximum allowed record length (assuming the block size as 4096 bytes) is: File type Record size (<2GB file) Unstructured 4096 bytes Key-sequenced 4062 bytes* Entry-sequenced 4072 bytes Relative 4072 bytes * In H06.28/J06.17 RVUs with specific SPRs and later RVUs, the supported maximum record length (assuming the block size as 32768 bytes) for a key-sequenced file is 27648 bytes. For a list of the required H06.28/J06.
DDL Compiler Commands OLDFUP_FILEFORMAT Example 9-38. NOFILEFORMAT Command (page 2 of 2) !?FUP < SCHEMA PRODUCED DATE - TIME : 3/02/2000 - 18:52:42 Output source for FUP is opened on $ZTNT.#PTVWAT5 !?NOFILEFORMAT !RECORD EMPL. !FILE IS "EMPLOYEE". !DEF IS EMP. !KEY IS EMPL.EMP-ID. !KEY "MN" IS EMPL.EMP-NAME. !END. Record EMPL size is 30 bytes. Record EMPL added to dictionary.
DDL Compiler Commands OLDFUP_FILEFORMAT OLDFUP_FILEFORMAT, NEWFUP_FILEFORMAT, or NOFILEFORMAT command) and stores the records in the dictionary, the user must use the same commands while requesting FUP output of those records. The format specification for both the alternate key and the main file is the same (format 1 in this case). The DDL compiler does not allow the user to define a record length greater than the maximum allowed length.
DDL Compiler Commands OLDFUP_FILEFORMAT Example 9-39. OLDFUP_FILEFORMAT Command (page 2 of 2) ?FUP < SCHEMA PRODUCED DATE - TIME : 3/01/2000 - 21:26:19 Output source for FUP is opened on $ZTNT.#PTVWAMU ?OLDFUP_FILEFORMAT RECORD EMPL. FILE IS "EMPLOYEE". DEF IS EMP. KEY IS EMPL.EMP-ID. KEY "MN" IS EMPL.EMP-NAME. END. Record EMPL size is 23 bytes. Record EMPL added to dictionary.
DDL Compiler Commands OUT OUT The OUT command specifies the destination for compiler output (source lines, warnings, and error messages). OUT [ listing-destination ] listing-destination is a file name or output device. Default: destination specified in the OUT run option of the RUN DDL Command on page 3-1 The OUT command can be used anywhere within a DDL source code file. Different portions of the listing can be written to different destinations.
DDL Compiler Commands OUTPUT_SENSITIVE OUTPUT_SENSITIVE The [NO]OUTPUT_SENSITIVE command generates case-sensitive [case-insensitive] output. [NO]OUTPUT_SENSITIVE Default: NOOUTPUT_SENSITIVE OUTPUT_SENSITIVE generates all source code files in case-sensitive form; that is, lowercase will remain lowercase and uppercase will remain uppercase. NOOUTPUT_SENSITIVE generates all source code files in a case-insensitive form. Overrides the OUTPUT_SENSITIVE command if that command is in effect.
DDL Compiler Commands OUTPUT_SENSITIVE Example 9-41. OUTPUT_SENSITIVE Command (page 2 of 3) !?DICT Audited dictionary created on subvol $ADE101.BUG. Dictionary opened on subvol $ADE101.BUG for update access. !?C /* SCHEMA PRODUCED DATE - TIME : 3/06/2000 - 13:19:47 */ Output source for C is opened on $ZTN0.#PTS3Z89 !?TAL ! SCHEMA PRODUCED DATE - TIME : 3/06/2000 - 13:19:55 Output source for TAL is opened on $ZTN0.#PTS3Z89 !?NOOUTPUT_SENSITIVE !DEF kiSHOy. !02 cuTNAME PIC X(10). !02 cdT-ID PIC 9(6) . !END.
DDL Compiler Commands OUTPUT_SENSITIVE Example 9-41. OUTPUT_SENSITIVE Command (page 3 of 3) TAL output produced for KISHOY. !?OUTPUT_SENSITIVE !DEF emp. !02 emp-NAME PIC X(10). !02 emp-ID PIC 9(6) COMP. !END. Definition emp size is 14 bytes. Definition emp added to dictionary. #pragma section emp /* Definition emp created on 03/06/2000 at 13:29 */ #pragma fieldalign shared2 __emp typedef struct __emp { char emp_NAME[10]; unsigned long emp_ID; } emp_def; #define emp_def_Size 0 C output produced for emp.
DDL Compiler Commands PAGE PAGE The PAGE command writes the next line of the compiler listing at the top of the next page and (optionally) specifies a page title. PAGE [ "listing-title " ] listing-title is an ASCII character string of at most 132 characters. The PAGE command can be placed anywhere in the DDL source listing.
DDL Compiler Commands PASCAL (D-Series Systems Only) pascal-source-file is the name of the Pascal source code file to be created, if necessary, and opened. The file must be one of: • • • EDIT file Unstructured file Sequential device (such as a terminal, spooler, or process) If the file exists but is not one of these types, the DDL compiler issues an error message and does not open the file.
DDL Compiler Commands PASCAL (D-Series Systems Only) The DDL compiler replaces any field reference dot character (.) in a primary or alternate-key name by an underscore before writing the name to the Pascal source code file.
DDL Compiler Commands PASCALBOUND (D-Series Systems Only) Example 9-43. PASCAL Command DDL Output (CUSTOMER Record in PASSRC) ?Section CUSTOMER { Definition for CUSTOMER Record } { Contains customer information for each customer } TYPE CUSTOMER_DEF = RECORD {FILE IS "$data.sales.customer" KEY-SEQUENCED.
DDL Compiler Commands PASCALCHECK (D-Series Systems Only) In the array bounds, number is the number of occurrences of a field described with an OCCURS clause, or the number of characters in a field described with an alphanumeric PICTURE or a TYPE CHARACTER clause. If you specify PASCALBOUND 1, the array bounds are: [1:number] Example 9-44. PASCALBOUND Command ?PASCAL ... Open Pascal source code file. PASCALBOUND is 1 by default. ?PASCALBOUND 0 DEF test0 PIC X(10). Change PASCALBOUND to 0.
DDL Compiler Commands PASCALNAMEDVARIANT (D-Series Only) Example 9-45. PASCALCHECK Command ?PASCALCHECK DEF TRANSPORT. 02 CASE PIC X(10). 02 ORIGIN PIC X(10). 02 DESTIN PIC X(10). 02 LABEL PIC X(10). 02 PACKED PIC X(10). END. Start syntax checking. Definition TRANSPORT size is 50 bytes. Definition TRANSPORT added to dictionary.
DDL Compiler Commands REPORT REPORT The [NO]REPORT command: • • Opens [closes] a report file Starts [stops] writing a schema report to the report file { REPORT [ report-destination [ ! ] ] } { NOREPORT } Default: NOREPORT REPORT closes any open report file, opens report-destination, and writes a schema report to that file. report-destination is the name of the file or output device to which the report is sent.
DDL Compiler Commands REPORT To produce a schema report on the output device $S.#PRINTER, you can enter the noninteractive command: 40> DDL/IN myschema/DICT, REPORT $S.#printer You can generate the same report interactively: 41> DDL DICT !?REPORT $S.#printer !?SOURCE myschema !EXIT If any object is defined by reference to another object, the name of the referenced object appears under the heading “Source Definition.” You do not need the schema to produce a report.
DDL Compiler Commands RESET RESET The RESET command stops compiling the current statement and returns to the state before compilation of that statement began. RESET Use RESET only in interactive sessions. (It functions in the noninteractive mode, but is more useful in the interactive mode.) Use RESET whenever an error or series of errors makes it difficult to continue compilation. Example 9-47. RESET Command 43> DDL !?DICT !DEF aa. ! 02 bb PIC X(4). ! 03 cc PIC 9(6).
DDL Compiler Commands SAVE NOSAVE purges the contents of the open dictionary when the dictionary is closed unless the dictionary either: • • Was opened for read-only access with the command DICTR on page 9-51 Is part of a Pathmaker project The open dictionary closes in any of these situations: • • • The NODICT command executes (see DICT on page 9-47) The DICT command opens another dictionary Compilation stops If an existing dictionary is opened for update and NOSAVE is in effect when the dictionary
DDL Compiler Commands SECTION Example 9-48. SAVE Command 44> DDL !?ERRORS 1 !?NOSAVE !?DICT $data.sales First line of DDL schema ... Body of DDL schema !?SAVE !EXIT Last line of DDL schema SECTION The SECTION command names a section of a DDL schema (without affecting the section headings in host-language source code files). SECTION section-name section-name is the name of a section.
DDL Compiler Commands SETLOCALENAME Figure 9-1. SECTION Command * first line of DDL source schema ?SECTION employee-files . . . ?SECTION sales-files . Sales files section . . ?SECTION employee-files . . . * last line of DDL source schema employee files section VST925.vsd SETLOCALENAME The SETLOCALENAME command specifies the language, territory, and character set for output of text items. SETLOCALENAME [ locale-name ] locale-name specifies a language, territory, and character set for a text item.
DDL Compiler Commands SETSECTION Example 9-49. SETLOCALENAME Command DDL Input ? DICT ! ? COBOL COBSRC ! ? SETLOCALENAME no_NO.ISO8859-1 CONSTANT custnum-heading VALUE "Finnish" LN"fi_FI.ISO8859-1" "Norwegian" LN"no_NO.ISO8859-1" "Danish" LN"da_DK.ISO8859-1". DDL Output (COBOL Code) * SCHEMA PRODUCED DATE - TIME : 11/16/1994 16:17:21 ?SECTION CUSTNUM-HEADING TANDEM * Constant CUSTNUM-HEADING created on 11/16/1994 at 16:17 01 CUSTNUM-HEADING PIC X(7), VALUE IS "Norwegian".
DDL Compiler Commands SOURCE If you give a SETSECTION command with a name, and then open a host-language source code file, no SECTION commands are written to the file. The SECTION command for the given name is not written because the file was not open at the time. Also, the SETSECTION command inhibits any SECTION commands for individual objects. SETSECTION does not specify sections in the DDL schema being compiled.
DDL Compiler Commands SOURCE section-name is the name of a section within the schema file. (Section names are specified with the command SECTION on page 9-96.) If you specify one or more sections, the DDL compiler compiles only the specified sections. If you do not specify sections, the DDL compiler compiles the entire schema.
DDL Compiler Commands SPACING SPACING The SPACING command specifies the number of blank lines to insert between lines of a printed report. SPACING { 0 | 1 | 2 } Default: SPACING 0 { 0 | 1 | 2 } is the number of blank lines to insert between lines of a printed report. The SPACING command controls spacing only on a printed report; it does not affect spacing in a report file or on a terminal display. You can use the SPACING command as often as you want to within a DDL schema or in a DDL session.
DDL Compiler Commands TACL tacl-source-file is the name of the TACL source code file to be created, if necessary, and opened. The file must be one of: • • • EDIT file Unstructured file Sequential device (such as a terminal, spooler, or process) If the file exists but is not one of these types, the DDL compiler issues an error message and does not open the file. Default: home terminal ! purges the contents of tacl-source-file before opening it, if it exists.
DDL Compiler Commands TACL The DDL compiler translates each DDL object (except constants) to one or more TACL structures; the DDL compiler translates constants to TACL text variables. For the data types that the DDL compiler generates for TACL source code, see Table C-5 on page C-9.
DDL Compiler Commands TACLGEN Example 9-53. TACL Command DDL Input ?DICT ?TACL \dallas.$data.sales.taclsrc OUTPUT RECORD customer.
DDL Compiler Commands TAL TAL The [NO]TAL command: • • Opens [closes] a pTAL or TAL source code file Starts [stops] writing translated DDL object definitions to the pTAL or TAL source code file { TAL [ tal-source-file [ ! ] } { NOTAL } Default: NOTAL TAL closes any open pTAL or TAL source code file, opens tal-source-file, translates subsequent DDL objects defined by statements or specified in OUTPUT statements to pTAL or TAL source code statements, and writes the pTAL or TAL source code statements to t
DDL Compiler Commands TAL The specified pTAL or TAL source code file must be an EDIT file, an unstructured file, or a sequential device such as a terminal, a spooler, or a process. If the file exists but is not one of these types, the DDL compiler issues an error message and does not open the file. Only one pTAL or TAL source code file can be open at a time.
DDL Compiler Commands TAL The DDL compiler performs all of the syntax checks listed under the TALCHECK command before writing the pTAL or TAL source output. If the DDL compiler finds a syntax error, it does not write the source output for the object with the error; it does write source output for an object if only a warning is issued. The lower bound for pTAL or TAL arrays can be set with the TALBOUND command.
DDL Compiler Commands TALALLOCATE TALALLOCATE The [NO]TALALLOCATE command causes [suppresses] memory allocation in pTAL or TAL for single-field definitions when the TAL command is in effect. [NO]TALALLOCATE Default: TALALLOCATE TALALLOCATE allocates memory for single-field definitions when the TAL command is in effect. NOTALALLOCATE suppresses memory allocation when the TAL command is in effect, causing the DDL compiler to translate single-field definitions to pTAL or TAL DEFINEs or STRUCT templates.
DDL Compiler Commands TALBOUND TALBOUND The TALBOUND command sets the lower bound for pTAL or TAL arrays. TALBOUND { 0 | 1 } Default: TALBOUND 1 0 assigns any subsequent pTAL or TAL arrays a lower bound of 0. 1 assigns any subsequent pTAL or TAL arrays a lower bound of 1. The DDL compiler stores the value of the lower bound in the dictionary with the field or group definition. You can use the TALBOUND command as often as needed to set different bounds for different arrays.
DDL Compiler Commands TALCHECK Example 9-56. TALBOUND Command DDL Input ?TAL ... Open TAL source code file TALBOUND is 1 by default ?TALBOUND 0 DEF test0 PIC X(10). Change TALBOUND to 0 ?TALBOUND 1 DEF test1 PIC X(10).
DDL Compiler Commands TALUNDERSCORE The DDL compiler does not perform the lengthy testing performed by the pTAL or TAL compiler. The DDL compiler tests the DDL statements to ensure that they follow the rules specified by pTAL or TAL: • • • pTAL or TAL reserved words cannot be DDL names. • A REDEFINES clause cannot be at the level directly following that of a definition or record. A constant value must not be greater than its defined limit.
DDL Compiler Commands TEDIT NOTALUNDERSCORE replaces each hyphen (-) with a circumflex (^) in DDL names for pTAL or TAL output. Example 9-58. TALUNDERSCORE Command DDL Input CONSTANT This-Is-A-Literal VALUE is 99.
DDL Compiler Commands TIMESTAMP You must close any source code file before editing it. For instance, if you have opened a COBOL source code file and entered some text in it, and then you want to view the source code file with the text editor, you must issue the NOCOBOL command before you issue the TEDIT command. When you specify edit-file-name in the TEDIT command, the DDL compiler passes that name to the current PS Text Edit process and also stores the name.
DDL Compiler Commands TIMESTAMP NOTIMESTAMP excludes date and time comments from source code listings. The DDL compiler produces a number of starred timestamp comments on the listings of DDL or host-language source code. A comment at the beginning of the listing tells the date and time the schema was produced; individual comment lines preceding each section tell when each DDL object was created. You can suppress these timestamp comments with NOTIMESTAMP and then include them with a subsequent TIMESTAMP.
DDL Compiler Commands VALUES VALUES The [NO]VALUES command includes [excludes] initial values from DEFINITION and RECORD statements in [from] DDL or COBOL source code. [NO]VALUES Default: VALUES VALUES includes initial values from DEFINITION and RECORD statements in COBOL or DDL source code. NOVALUES excludes initial values from DEFINITION and RECORD statements from DDL or COBOL source code.
DDL Compiler Commands WARN WARN The [NO]WARN command includes [excludes] warnings in [from] the compiler listing. [NO]WARN Default: WARN WARN includes warnings in the compiler listing. NOWARN excludes warnings from the compiler listing. Example 9-62. WARN and NOWARN Commands *start of source code file List warning messages by default ... ?NOWARN ... Suppress warning messages for subsequent statements ?WARN ...
DDL Compiler Commands WARNINGS The specified maximum number of warnings applies only to warnings that occur after the appearance of the WARNINGS command. For example, if two warnings occur before a WARNINGS 5 command appears, the seventh warning to occur (the fifth warning after the command appeared) stops compilation. If the NOWARN command is in effect, you cannot use the WARNINGS command.
10 Dictionary Maintenance This section briefly describes these dictionary maintenance procedures: • • • • • • • • • • • Generating a schema From a Dictionary on page 10-1 Adding Dictionary Objects on page 10-2 Deleting Dictionary Objects on page 10-4 Modifying Dictionary Objects on page 10-8 Making Major Modifications on page 10-13 Changing Dictionary Security on page 10-14 Moving a Dictionary on page 10-14 Purging a Dictionary on page 10-18 Increasing Dictionary File Size on page 10-19 Rebuilding a Dic
Dictionary Maintenance Adding Dictionary Objects Example 10-1. Generating a schema From a Dictionary 39> DDL Run the DDL compiler interactively. !?DICT $data.sales Open the dictionary. !?DDL $data.sales.schembak ! Open a DDL source file. !?OUTPUT *. Generate DDL source statements from the dictionary objects and write them to the open DDL source file (which is now the new schema file). !EXIT End the interactive session.
Dictionary Maintenance Adding Dictionary Objects Example 10-2. Adding a New Record to a Dictionary Add the record: Specify a new record 40> EDIT newsrc !; ADD 1 RECORD dependents. 2 FILE IS $data.sales.empdep KEY-SEQUENCED 3 AUDIT. 4 O2 dep-key. 5 04 empnum TYPE *. 6 04 depnum PIC X(4). 7 02 depname TYPE name. 8 02 age PIC 9(2). 9 02 sex PIC X(2). 10 88 female VALUE "01". 11 88 male VALUE "02". 12 KEY IS dep-key. 13 END 14 // *EXIT View the record: 41> DDL DICT $data.
Dictionary Maintenance Deleting Dictionary Objects Deleting Dictionary Objects Deleting a dictionary object is comparatively easy if the object is not referenced by other objects in the dictionary. Objects that are never referenced by other objects are: • • • Records SPI token codes SPI token maps When an object is referenced by other objects, you must first delete the referring objects.
Dictionary Maintenance Deleting Referenced Objects Example 10-3 on page 10-5 builds a source file containing the code to open the dictionary and delete one record. When the DDL compiler compiles the source file, it opens the dictionary and deletes the record DEPENDENT-INFO from the open dictionary. Example 10-3. Deleting an Unreferenced Object From a Dictionary 42> EDIT delsrc; add 1 ?DICT $data.sales 2 DELETE RECORD dependent-info.
Dictionary Maintenance • Deleting Referenced Objects It writes the statements to rebuild the objects that referenced the specified object, in a section for each referring object. After executing OUTPUT UPDATE, you can use the SOURCE command to execute the DELETE statements in the DDL source file section written by OUTPUT UPDATE. After the objects that refer to an object are deleted, you can delete the referenced object. Assume you are running the DDL compiler interactively.
Dictionary Maintenance Deleting Referenced Objects Example 10-5. Deleting a Referenced Object From a Dictionary (page 1 of 2) The referenced object, age, in the dictionary: DEF age PIC 99. DEF employ. 02 empnum 02 empname 02 age END PIC 9(4). PIC X(18). TYPE *. RECORD employee. 02 employ 02 region 02 branchnum END FILE IS ASSIGNED. TYPE *. PIC 9(4). PIC 9(4). Removing age from the dictionary: Run the DDL compiler and open dictionary 44> DDL DICT $data.sales Dictionary opened on subvol $DATA.
Dictionary Maintenance Modifying Dictionary Objects Example 10-5. Deleting a Referenced Object From a Dictionary (page 2 of 2) Record EMPLOYEE deleted from dictionary. 3 Delete Definition EMPLOY Definition EMPLOY deleted from dictionary. 4 !DELETE DEF age. Delete AGE definition Definition AGE deleted from dictionary. Exit from DDL compiler !EXIT Objects: Added Replaced Deleted Definitions 0 0 2 Records 0 0 1 Dictionary on subvol \SYS1.$DATA.SALES is closed.
Dictionary Maintenance Modifying Unreferenced Objects Modifying Unreferenced Objects Records, SPI token codes, and SPI token maps are never referenced by other objects. Other types of objects can be referenced. You can use the SHOW USE OF command to determine whether the object you want to modify is referenced by other objects. To modify an object not referenced by other objects, build a source file that contains the definition of the changed object, then compile this source file into the dictionary.
Dictionary Maintenance Modifying Referenced Objects Example 10-6. Modifying an Unreferenced Object (page 2 of 2) 7 File is "$data.sales.orders" Key-sequenced 8 Audit 9 Definition is ORDERINFO. 10 11 Key is ORDERNUM Duplicates not allowed. 12 Key "sn" is SALESPERSON. 13 Key "cn" is CUSTNUM. 14 End *A 13 13 Key "cn" is CUSTNUM. 13.1 KEY "od" is ORDERDATE. 13.2 // *EXIT Add new alternate key !?SOURCE newsrc !EXIT Compile modified record Alternatively, assume that ORDERDATE is not defined in ORDERINFO.
Dictionary Maintenance Modifying Referenced Objects Example 10-8. Objects That Reference Other Objects CONSTANT a DEF b DEF c VALUE IS 1. TYPE BINARY TYPE b. VALUE IS a. When an object is referenced by many other objects, deleting and then redefining all the referring objects is a time-consuming and error-prone process. The statement OUTPUT UPDATE on page 8-7 helps you by performing these functions: • • Locating all the objects that refer to a specified object.
Dictionary Maintenance Modifying Referenced Objects 6. Compile the DDL source file. If you are still in an interactive session, use the SOURCE command to submit the source file to the compiler. If you exited from the DDL compiler after Step 4, run the DDL compiler from the command interpreter specifying the DDL source file as the input file. Suppose postal zip codes must be changed from five digits to nine digits.
Dictionary Maintenance Making Major Modifications Example 10-9. Modifying a Reference Object (page 2 of 2) *EXIT Exit editor !?SOURCE modfile !EXIT Compile changes into dictionary and exit DDL Making Major Modifications If you have made many changes to a dictionary interactively through the DDL compiler, HP recommends that you recompile the entire dictionary. Rather than using the original schema, which might not reflect all changes to the dictionary, create a new schema from the dictionary.
Dictionary Maintenance Changing Dictionary Security Changing Dictionary Security Dictionary files are created with the default file-creation security of the user who created them. If you are the owner of the files, you can change the security applied to the dictionary files by the DDL compiler with the FUP SECURE command. To change file security: 1. Use the FUP INFO command to determine the current security of the dictionary files. 2. Use the FUP SECURE command to specify the security you want.
Dictionary Maintenance Moving a Nonaudited Dictionary Topics: • • Moving a Nonaudited Dictionary on page 10-15 Moving an Audited Dictionary on page 10-16 Moving a Nonaudited Dictionary To move a nonaudited dictionary: 1. Duplicate the dictionary files on another subvolume using FUP DUP commands. 2. Change the subvolume name of the alternate key file in the file label of each dictionary file that has alternate keys using FUP ALTER commands.
Dictionary Maintenance Moving an Audited Dictionary Moving an Audited Dictionary Moving an audited dictionary requires more steps than moving a nonaudited dictionary because of these actions of the FUP utility on audited files: • When you FUP DUP an audited file, FUP automatically disables auditing on the file but does not disable auditing on or change pointers to any associated alternate key files.
Dictionary Maintenance Moving an Audited Dictionary Example 10-12. Moving an Audited Dictionary Default volume and subvolume VOLUME $mkt.
Dictionary Maintenance Purging a Dictionary Suppose that the commands of Example 10-12 on page 10-17 are in the file $MKT.SALESDIC.DICMOVE. You can execute the commands by entering this command: 58> OBEY $mkt.salesdic.dicmove If you no longer need the original dictionary on $MKT.SALESDIC, you can purge the dictionary files as in Purging a Dictionary on page 10-18. If you keep the original dictionary, you might want to re-audit the dictionary files.
Dictionary Maintenance Increasing Dictionary File Size Increasing Dictionary File Size The DDL compiler creates the dictionary files with primary and secondary extent sizes. Table 10-1.
Dictionary Maintenance Rebuilding a Dictionary Example 10-15. Increasing a Dictionary’s File Size 63> FUP ALTER DICTOTF, MAXEXTENTS 200 64> FUP INFO DICTOTF, DETAIL $DATA.SALES.DICTOTF TYPE K CODE 203 ... MAXEXTENTS 200 ... Verify change Rebuilding a Dictionary The procedure for rebuilding a nonaudited dictionary differs from the procedure for rebuilding a dictionary audited by the Transaction Monitoring Facility (TMF) subsystem.
Dictionary Maintenance Rebuilding an Audited Dictionary Example 10-16 on page 10-21 rebuilds a dictionary with a schema generated from a corrupted dictionary. Example 10-16. Rebuilding a Nonaudited Dictionary 65> DDL !?DICT $data.sales !?DDL $data.newsales.ddlsrc !OUTPUT * !?NODDL !?DICT $data.newsales !?SOURCE $data.newsales.ddlsrc !EXIT In some cases, you cannot generate a schema from a corrupted dictionary.
Dictionary Maintenance Converting a Dictionary Converting a Dictionary As of the D-series software product version, the DDL compiler supports these dictionaries: DDL Compiler Product Version Dictionary Product Version C20 and C30 5 D00, D10, and D20 6 D30 and later 7 H01 8 To have full use of a dictionary created with DDL software prior to product version D00 from a D-series product version of the DDL compiler, convert the dictionary to product version 6 or 7.
Dictionary Maintenance Converting a Dictionary Example 10-18. Converting a Dictionary From One Product Version to Another 67> VOLUME $data.sales 68> DDL !?DICT Open the dictionary on $DATA.SALES !?DDL ddlsrc ! Open the DDL source file DDLSRC !OUTPUT *. Generate dictionary schema on DDLSRC !?NODDL Close DDLSRC and check DDLSRC before continuing !?DICT ! Clear the dictionary on $DATA.
A DDL Messages This appendix lists all of the DDL error and warning messages in alphabetic order. For each message, it gives the cause, effect, and recovery procedure. During DDL processing, you might receive a message from a sequential I/O procedure. Sequential I/O error messages, numbered from 500 to 600, are not documented in this manual. For information about the corrective action to take when you get such an error, see the Guardian Procedure Errors and Messages Manual. Table A-1.
DDL Messages Effect. The DDL compiler rejects the object. For example: !DEF EMP8. !02 FLD8 PIC 9(5). !END. Definition EMP8 size is 5 bytes. Definition EMP8 added to dictionary. !DEF EMP9. !02 FLD9 TYPE EMP8 COMP-3. !END. *** ERROR *** A non PACKED-DECIMAL item was specified in group *** WARNING *** Errors detected - no output produced for EMP9 ! FLD9 Recovery. Change the data type of the field, or remove the USAGE IS COMP-3, COMPUTATIONAL-3, or PACKED-DECIMAL clause from the group definition.
DDL Messages ***ERROR*** Attribute already specified- attribute Cause. A definition attribute clause is specified more than once for the same field, or a file creation attribute is specified more than once for the same record. Effect. The DDL compiler rejects the object. Recovery. Remove the repeated clause or file-creation attribute and recompile the object. ***ERROR*** Attribute cannot be specified for bit fieldsattribute-name Cause.
DDL Messages Recovery. Specify a field of a type other than bit as the key. ***ERROR*** BLOCK must be 512, 1024, 2048, or 4096 bytes Cause. A block length other than 512, 1024, 2048, or 4096 bytes was specified. Effect. The DDL compiler rejects the object. Recovery. Specify a valid block length and recompile the object. ***ERROR*** BLOCK must be 512, 1024, 2048, 4096, or 32768 bytes (32768 bytes only for format 2 key-sequenced files) Cause.
DDL Messages Effect. The DDL compiler closes the dictionary and source code files and stops processing. Recovery. Reduce the number of nesting levels of source files. ***ERROR*** BUFFERSIZE must be 512, 1024, 2048, or 4096 bytes Cause. An invalid value was specified for BUFFERSIZE. Effect. The DDL compiler rejects the record. Recovery. Recovery. Change the BUFFERSIZE value to 512, 1,024, 2,048, or 4,096 and recompile. ***ERROR*** BUFFERSIZE specified for a structured file Cause.
DDL Messages Effect. The DDL compiler rejects the object. Recovery. Use OUTPUT UPDATE to rebuild objects that refer to the corrected definition.
DDL Messages ***WARNING*** CIFNDEF or CIFDEF is not ended by CENDIF in C output. Cause. At least one #ifdef or #ifndef statement in C output was not closed. Effect. The DDL compiler issues this warning message. For example: !?DICT Audited dictionary created on subvol $ADE101.ALPHA Dictionary opened on subvol $ADE101.ALPHA for update access. !?C /*SCHEMA PRODUCED DATE - TIME : 7/21/2000 - 19:45:15 */ Output source for C is opened on $ZTN1.#PTPJHU8 !?CIFDEF EMP #ifdef EMP !CONSTANT EMP1 VALUE "JYOTI".
DDL Messages ***WARNING*** COBOL85 OUTPUT DIAGNOSTICS: Cause. You requested COBOL output by default or with a SETCOBOL85 command, but the object does not conform to COBOL rules. Effect. A message follows describing the COBOL error. The DDL compiler does not write the object to the COBOL source file. Recovery. If you want COBOL output, correct the object definition the conform to COBOL rules and recompile. ***WARNING*** CODE withing range reserved by TANDEM, 100-999 Cause.
DDL Messages ***ERROR*** Command not supported for specified object type Cause. You have entered a command that does not apply to the particular object type; for example, OUTPUT UPDATE specifies RECORD, or SHOW USE OF specifies TOKEN-CODE, as the object type. Effect. The DDL compiler does not execute the command. Recovery. Use a different command for the particular object type. ***WARNING*** Comment lines within element definition cannort be saved Cause.
DDL Messages Recovery. Correct the error and recompile. For more information about computational items, see USAGE on page 6-71. ***ERROR*** COMP specified with reference item which is not COMP- element_name Cause. The data type of the referenced item identified by element_name is described with a USAGE IS COMP clause but is not a computational data type. Effect. The DDL compiler rejects the object. Recovery. Correct the error and recompile.
DDL Messages ***ERROR*** COMPRESS, DCOMPRESS, or ICOMPRESS on a non KEYSEQUENCED file Cause. The record definition of an entry-sequenced, relative, or unstructured file contains a COMPRESS, DCOMPRESS, or ICOMPRESS clause. These clauses apply only to key-sequenced files. Effect. The DDL compiler rejects the object. Recovery. Change the file structure to key sequenced, or remove the COMPRESS, DCOMPRESS, or ICOMPRESS clause. ***ERROR*** CONSTANT data type is incompatible with referenced value Cause.
DDL Messages ***ERROR*** CONSTANT’s TACL representation exceeds DDL’s 130-byte limit- constant-name Cause. A CONSTANT statement has either a value greater than 130 ASCII characters or a value that was made greater by the DDL compiler emitting a tilde (~) preceding the special TACL characters [ ] { } | ==, and TACL code is requested. Effect. The DDL compiler does not generate TACL code for the constant or for any object that refers to the constant. Recovery.
DDL Messages ***FATAL ERROR*** DDL cannot run on this version of GUARDIAN Cause. You are attempting to run the DDL compiler on an unsupported product version of the operating system. Effect. The DDL process does not start. Recovery. Consult your system manager. ***FATAL ERROR*** DDL internal error Cause. An internal error has occurred. No user error is implied. Effect. The DDL compiler closes the dictionary and source code files and stops processing. Recovery. Consult your system manager.
DDL Messages ***ERROR*** DEF or RECORD exceeds Pascal 32766-byte limitobject-name Cause. A definition or record generates a Pascal type definition that is greater than 32,766 bytes. Effect. The DDL compiler does not generate Pascal output for the specified definition or record. Recovery. Shorten the definition or record and regenerate the Pascal source code. ***ERROR*** DEF or RECORD exceeds Pascal 32766-byte limitobject-name Cause.
DDL Messages Recovery. Take out the reference to the field and recompile the statement. ***ERROR*** DEPENDING ON element not within OCCURS range Cause. The DEPENDING ON element has a VALUE clause in which the specified value is not within the range specified by the OCCURS clause. Effect. The DDL compiler rejects the object. Recovery. Specify a valid value and recompile. ***FATAL ERROR*** Dict has been moved and key files were not FUP ALTERed Cause.
DDL Messages ***ERROR*** Dictionary is only partially purged in subvolsubvolume-name Cause. Some of the dictionary files have been purged, but not all of them. The remaining files might not have been purged because they were in use, or there was a security violation on the files. Effect. You cannot use the dictionary with part of the files missing. Recovery. Determine the status of the individual files and purge them manually when possible. ***WARNING*** Dictionary not found Cause.
DDL Messages Recovery. Reissue the COBOL, DDL, FORTRAN, FUP, TACL, TAL, C, or Pascal command, specifying an EDIT file. ***ERROR*** Duplicate text item for locale locale-name Cause. A literal with the same locale name has already been associated with the text item. Effect. The DDL compiler rejects the object. Recovery. Ensure that each locale name for a text item is unique. ***ERROR*** Duplicate VALUE on Level 89 item- field-name Cause.
DDL Messages ***WARNING*** EDIT file could not be opened- File error file-error Cause. The EDIT process cannot be started because of the file error identified by file-error. Effect. The DDL compiler cannot start the EDIT process. Recovery. Reissue the EDIT command. If the problem persists, see your system manager. FILE ERROR - filename - Edit file line number too large (537) Cause. The source output file, filename, is an EDIT file and the source output exceeded 99,999 lines. Effect.
DDL Messages Recovery. Specify a valid edit picture in the clause and resubmit the statement to the DDL compiler. ***WARNING*** EDIT process could not be created- File error file-error Cause. A file error indicated by file-error occurred during creation of the EDIT process. No user error is implied. Effect. The DDL compiler cannot start the EDIT process. Recovery. Reissue the EDIT command. If the problem persists, consult your system manager.
DDL Messages Effect. The DDL compiler issues error messages and does not generate output for the requested language. For example: !?Cobol ! def def1 type binary 64 unsigned. *** WARNING *** COBOL 85 OUTPUT DIAGNOSTICS: *** ERROR *** Element contains BINARY 64 UNSIGNED data type – DEF1 *** ERROR *** BINARY 64 UNSIGNED data type is not supported in COBOL Recovery. Recovery is not possible. Remove the BINARY 64 UNSIGNED data item from the definition or record.
DDL Messages Recovery. Change the REDEFINES clause in the first element to refer to the same field as does the REDEFINES clause in the second element. ***ERROR*** Element name already used in or qualifies this group- element-name Cause. An element at the same lexical level as this element, and within the same group, has the same name. Effect. The DDL compiler rejects the object. Recovery. Change one of the names and recompile.
DDL Messages ***ERROR*** ENUM values out of range for bit fieldfield-name Cause. The enumeration definition specified for a bit field has a value or values that do not fit in the bit field. Effect. The DDL compiler rejects the object that includes the bit field. Recovery. Do one of the following: • • • • Change the values in the enumeration definition to fit the specified number of bits. Specify enough bits to contain the largest value in the enumeration definition.
DDL Messages ***WARNING*** Errors detected- no output produced for object-name Cause. The DDL compiler detected one or more errors while processing the statement for object-name. Effect. The DDL compiler rejects the object. Recovery. Correct the error or errors and recompile. ***WARNING*** ERRORS is not a legal positive integer- value not changed Cause. The ERRORS command specifies an integer that is not in the range 1 through 32767. Effect. The DDL compiler ignores the ERRORS command. Recovery.
DDL Messages Recovery. Change the EXT value to a multiple of BUFFERSIZE. For example, if BUFFERSIZE = 4096, 4 is a valid value for EXT, but 3 is not. ***ERROR*** EXT must be a positive integer Cause. A value for EXT is equal to or less than 0; the extent size must be a positive integer. Effect. The DDL compiler rejects the object. Recovery. Correct the extent size and recompile. ***ERROR*** External clause must be on object name level Cause.
DDL Messages ***ERROR*** Field has variable OCCURSLine.LineItem.LocalName Cause. The field inside the DEFINITION used in the TOKEN-MAP statement has an OCCURS DEPENDING ON clause. Effect. The DDL compiler rejects the object. Recovery. Remove the OCCURS DEPENDING ON clause for the field and recompile. ***WARNING*** File name ignored when opening dictionary Cause. A fully qualified file name was specified as a dictionary subvolume in a DICT, DICTN, or DICTR command. Effect.
DDL Messages ***ERROR*** Filler cannot have a HEADING clause Cause. A FILLER field is described with a HEADING clause. Effect. The DDL compiler rejects the object. Recovery. Remove the HEADING clause and recompile. ***ERROR*** Filler cannot have a HELP clause Cause. A FILLER field is described with a HELP clause. Effect. The DDL compiler rejects the object. Recovery. Remove the HELP clause and recompile. ***ERROR*** Filler cannot have a KEYTAG clause Cause. A FILLER field is described with a KEYTAG clause.
DDL Messages ***ERROR*** Filler cannot have a TACL clause Cause. A FILLER field is described with a TACL clause. Effect. The DDL compiler rejects the object. Recovery. Remove the TACL clause and recompile. ***ERROR*** Filler cannot have an EXTERNAL clause Cause. A FILLER field is described with an EXTERNAL clause. Effect. The DDL compiler rejects the object. Recovery. Remove the EXTERNAL clause and recompile. ***ERROR*** Filler cannot have an UPSHIFT clause Cause.
DDL Messages Effect. The DDL compiler does not write object containing field larger than 255 bytes to the FORTRAN source file. Recovery. Describe the field as two or more smaller fields and recompile. ***WARNING*** FORTRAN OUTPUT DIAGNOSTICS: Cause. You requested FORTRAN output, but the object does not conform to FORTRAN syntax rules. Effect. A message follows describing the FORTRAN error. The DDL compiler does not write the object to the FORTRAN source file. Recovery.
DDL Messages Recovery. Remove the JUSTIFIED clause from the group definition or description, add a JUSTIFIED clause to the description of each field in the group, and recompile. ***ERROR*** Group items cannot have a MUST BE clause Cause. You specified a MUST BE clause for a group. Effect. The DDL compiler rejects the object. Recovery. Remove the MUST BE clause from the group definition or description, add a MUST BE clause to the description of each field in the group, and recompile.
DDL Messages Cause. A The DDL compiler name containing a hyphen (-) might duplicate a FORTRAN name. Effect. When generating FORTRAN source code, the DDL compiler might use another identifier with the same FORTRAN name but a different DDL name. Recovery. Avoid using a hyphen in a name for a FORTRAN object. ***ERROR*** Identifier too long Cause. A definition, record, or element name has more than 30 ASCII characters. Effect. The DDL compiler rejects the object. Recovery. Shorten the name and recompile.
DDL Messages ***ERROR*** INDEX must be a 1 or 2 word single item and computational Cause. A field whose definition or description includes a USAGE IS INDEX clause is not 2 or 4 bytes, is not a single field, or is not a computational item. Effect. The DDL compiler rejects the field or the object that includes the field. Recovery. Remove the USAGE IS INDEX clause, or change the field definition to meet the requirements for using this clause, and recompile the object.
DDL Messages Effect. The DDL compiler rejects the object. Recovery. Change the MUST BE range or the VALUE clause and recompile. ***ERROR*** Initial VALUE’s conflict in group- name Cause. A group with a VALUE clause contains a field that also has a VALUE clause. Effect. The DDL compiler rejects the object. Recovery. Remove the VALUE clause from the field description and recompile. ***WARNING*** Input line exceeds 132 characters; truncation occurred Cause.
DDL Messages ***WARNING*** Invalid compiler command- incorrect-command Cause. The indicated command is invalid. Effect. The DDL compiler ignores the command. Recovery. Correct the command and recompile if necessary. ***ERROR*** Invalid display format string Cause. The display format in a DISPLAY clause is incorrect. For display format rules, see the description of the AS modifier of the LIST command in the Enform Plus Reference Manual. Effect. The DDL compiler rejects the object. Recovery.
DDL Messages ***ERROR*** Invalid identifier format Cause. A hyphen (-) is the last character of a name identifying a record, definition, group, or field. Effect. The DDL compiler rejects the object. Recovery. Correct the error and recompile. ***ERROR*** Invalid lexical level Cause. A specified level number is less than 02 or greater than 49, or an elementary field with level n is followed by an elementary field or a group with level n +1 or greater. Effect. The DDL compiler rejects the object. Recovery.
DDL Messages Effect. The DDL compiler rejects the object. Recovery. Correct the PICTURE string and recompile. ***ERROR*** Invalid range specified Cause. The first value in a specified range is greater than the second value. Effect. The DDL compiler rejects the object containing invalid range. Recovery. Correct the range and recompile. ***WARNING*** Invalid section name Cause.
DDL Messages ***FATAL ERROR*** Invalid text type for comment Cause. The code in the TEXT-TYPE field of the dictionary file DICTOTF is supposed to identify a comment, but the code is invalid for a comment. Effect. The DDL compiler cannot use the dictionary. Recovery. This error cannot be recovered using the DDL compiler alone. Report the error to your service provider. ***FATAL ERROR*** Invalid text type in dictionary Cause.
DDL Messages Recovery. Correct or remove the REDEFINES clause and recompile. ***ERROR*** Item with MUST BE found on or within REDEFINES item- field-name Cause. You specified a MUST BE clause for a redefining field. Effect. The DDL compiler rejects the object. Recovery. Remove the MUST BE or REDEFINES clause and recompile. ***ERROR*** Item with UPSHIFT found on nonalphabetic data item- field-name Cause.
DDL Messages ***ERROR*** JUSTIFIED must be on alphabetic or alphanumeric item Cause. The JUSTIFIED clause can appear only in an alphabetic or alphanumeric elementary item. Effect. The DDL compiler rejects the object. Recovery. Remove the JUSTIFIED clause and recompile. ***ERROR*** Key attribute already spedified- key-attribute Cause. You have specified the indicated key attribute on an alternate key specification. Effect. The DDL compiler rejects the object. Recovery. Specify a different key attribute.
DDL Messages ***KEYTAG string must not exceed 2 bytes Cause. You specified a KEYTAG string with more than 2 characters. Effect. The DDL compiler rejects the record. Recovery. Specify a KEYTAG string no longer than 2 characters and recompile. ***ERROR*** KEYTAG used twice- keytag value Cause. The same KEYTAG value occurs more than once in a RECORD statement, or the value is equivalent in both numeric and ASCII form. Effect. The DDL compiler rejects the record. Recovery. Correct the error and recompile.
DDL Messages ***ERROR*** LEvel 88 not allowed for bit items Cause. One or more level 88 clauses follow the definition or description of a bit field. The DDL compiler does not allow level 88 clauses for bit maps because COBOL does not support such structures, and level 88 items are meaningful only for COBOL. Effect. The DDL compiler rejects the object. Recovery. To avoid the error message, remove the level 88 clause or clauses following the bit field and recompile the object.
DDL Messages ***WARNING*** LINECOUNT is not a legalk positive integervalue not changed Cause. The number in a LINECOUNT number command is not a positive integer. Effect. The line count is unchanged. Recovery. Correct number and recompile if necessary. ***WARNING*** Literal too long, commenting out literal for key key-value Cause. A literal name you used as a key in a record definition written to a pTAL or TAL source file exceeds the pTAL or TAL limit on name size. Effect.
DDL Messages ***WARNING*** Matched2 alignment not supported in Pascal Cause. You requested Pascal source output for a record or definition that was created with matched2 alignment. Effect. The DDL compiler does not generate the Pascal source. Recovery. Compile the definition without the CFIELDALIGN_MATCHED2 command. ***ERROR*** Missing section name Cause. A schema contains a SECTION command with no section name, and a SOURCE command requests a section in that schema. Effect.
DDL Messages ***FATAL ERROR*** More than one version specified- field-name Cause. A field in a token map has more than one product version because the field belongs to a group that has a product version, and the field itself has a product version. Effect. The DDL compiler closes the dictionary and source code files and stops processing. Recovery. Remove the product version specification from the field and recompile. ***ERROR*** More than 32 I18N definitions Cause.
DDL Messages ***ERROR*** Must Be not valid on a non-referencing ENUMeration Cause. A MUST BE clause is specified for a field of type ENUM, and the field does not refer to another field of type ENUM. Effect. The DDL compiler rejects the object. Recovery. Remove the MUST BE clause, or make the ENUM field refer to another ENUM field, and recompile. ***ERROR*** Name is embedded in a group of the same namefield-name Cause.
DDL Messages Effect. The DDL compiler does not generate DDL source update code. Recovery. Specify the DDL command before issuing the OUTPUT UPDATE statement and recompile. ***ERROR*** No definition for object-name Cause. No record or definition called object-name is in the dictionary. Effect. The DDL compiler rejects the object. Recovery. Correct the error and recompile. ***WARNING*** No dictionary is open, NOSAVE command ignored Cause. You entered a NOSAVE command, but no dictionary is open. Effect.
DDL Messages ***ERROR*** No level 89 clauses specified for item with TYPE ENUM- field-name Cause. The definition or description of a field whose type is ENUM does not include any level 89 clauses. Effect. The DDL compiler rejects the object. Recovery. Add one or more level 89 clauses to the field definition or description and recompile. (In a single-field definition, BEGIN must precede the first period, and END must follow the last clause.) ***ERROR*** NO ODDUNSTR specified for a structured file Cause.
DDL Messages ***ERROR*** No REDERINES clause allowed within an object with EXTERNAL Cause. You attempted to specify an EXTERNAL clause and one or more line items in the definition or record have a REDEFINES clause. Effect. The DDL compiler rejects the record. Recovery. Remove the EXTERNAL clause or the REDEFINES clause and recompile. ***ERROR*** No VALUE clause allowed within an object with EXTERNAL Cause.
DDL Messages Recovery. If you want to run a test compilation using NOSAVE, you can create a test dictionary on a subvolume unconnected with the Pathmaker project. ***ERROR*** NOVALUE cannot be specified unless referencing a DEF name Cause. A NOVALUE clause describes a field that has a PICTURE or TYPE datatype clause; NOVALUE can be used only in definitions that refer to previous definitions with TYPE * or TYPE name clauses. Effect. The DDL compiler rejects the object. Recovery.
DDL Messages ***ERROR*** Object element invalid- Dictionary is corrupt Cause. A dictionary was updated incorrectly. Effect. The DDL compiler rejects the object. Recovery. Rebuild the dictionary. ***ERROR*** Object is used by some other object(s)object-name Cause. An object you attempted to create or delete is referenced by another object. Effect. The DDL compiler does not create or delete the object. Recovery. Delete the referring object before creating or deleting the specified object.
DDL Messages ***FATAL ERROR*** Object number exceeded maximum value in DDF Cause. The next-obj number in DICTDDF exceeds the unsigned 32-bit range. The dictionary is full and no more objects can be added. Effect. The DDL compiler closes the dictionary and source code files and stops processing. Recovery. Delete some objects from the dictionary and recompile. ***WARNING*** Object type not specified- DEF assumed Cause.
DDL Messages Recovery. Correct the error and recompile. ***ERROR*** OCCURS DEPENDING ON cannot be within an OCCURS Cause. An OCCURS DEPENDING ON clause is nested within an OCCURS clause or another OCCURS DEPENDING ON clause. Effect. The DDL compiler rejects the object. Recovery. Correct the error and recompile. ***ERROR*** OCCURS DEPENDING ON found with or within REDEFINES- name Cause. A definition that contains a REDEFINES clause also contains an OCCURS DEPENDING ON clause when COBOL output is requested.
DDL Messages Effect. The DDL compiler rejects the object. Recovery. Correct the number and recompile. ***ERROR*** Octal numbers can’t contain decimal points Cause. A number in octal format contains a decimal point; for example, %6.5 is not a valid octal number. Effect. The DDL compiler rejects the object. Recovery. Correct the number and recompile. ***ERROR*** Old dictionary is only partially purged in subvol- subvolume-name Cause.
DDL Messages Effect. Recovery is not possible. Remove the COMP-3, COMPUTATIONAL-3, or PACKED-DECIMAL data item from the definition or record. Such data items are not supported in C, FORTRAN, pTAL, PASCAL, TAL, or TACL. ***ERROR*** Pascal DEF or RECORD or variant record name too long- object-name Effect. The name of a definition or record exceeds the Pascal limit of 31 ASCII characters for these names. Effect. The DDL compiler does not write the definition or record to the Pascal source file. Recovery.
DDL Messages Recovery. Correct the error and recompile. ***ERROR*** PICTURE string exceeds COBOL max of 30 characters- object-name Cause. A PICTURE string exceeds 30 ASCII characters when COBOL output is requested. Effect. The DDL compiler does not write the object to the COBOL source file. Recovery. Shorten the PICTURE string and recompile; rebuild the dictionary if the object in error is referenced by another object.
DDL Messages ***ERROR*** Primary key must be unique Cause. A primary-key field is defined with DUPLICATES ALLOWED; primary keys must be unique. Effect. The DDL compiler rejects the object. Recovery. Remove DUPLICATES ALLOWED and recompile. ***ERROR*** Primary key specified but file is not keysequenced- file-name Cause. A primary key is declared in a KEYTAG or KEY IS clause, but the FILE IS clause declares the file as other than key-sequenced. Effect. The DDL compiler rejects the object. Recovery.
DDL Messages ***ERROR*** Record or definition too large Cause. A definition or record is larger than 32767 bytes. Effect. The DDL compiler rejects the object. Recovery. Correct the error and recompile. ***ERROR*** Record size too big for file type Cause.
DDL Messages ***ERROR*** Redefined element not immediately preceding Cause. A redefined field or group does not immediately precede the redefining field or group. Effect. The DDL compiler rejects the object. Recovery. Move the redefining field or group to follow the field or group it redefines, then recompile. ***ERROR*** REDEFINES not allowed on or with bit fieldselement-name Cause. A REDEFINES clause follows the description of a bit field or is with a bit field. Effect.
DDL Messages ***ERROR*** Referenced constant may not be internationalized Cause. A locale name is defined by a reference to a previously defined constant. The referenced constant has locale information associated with it. Effect. The DDL compiler rejects the text item. Recovery. Only define a locale by a literal or by a previously defined constant assigned a value without an associated locale. ***ERROR*** Referenced Def has incompatible alignment Cause.
DDL Messages ***ERROR*** Referenced element is not defined Cause. A qualified name in this statement is not declared within the record that qualifies it. Effect. The DDL compiler rejects the object. Recovery. Declare the referenced element earlier and recompile. ***ERROR*** Referenced object is not type ENUM- object-type Cause. The ENUM clause in the type specification for a bit field refers to a definition that is not of type ENUM. Effect.
DDL Messages ***ERROR*** Reserved word- reserved-word Cause. The specified element name is a reserved word in C, COBOL, pTAL, Pascal, or TAL; and C, COBOL, Pascal, or TAL output is requested. Effect. The DDL compiler suppresses C, COBOL, pTAL, Pascal, or TAL output for the object. Recovery. Change the name and recompile; rebuild the dictionary if necessary. ***ERROR*** Reserved word for CONSTANT name- constant-name Cause. The indicated constant name is a DDL reserved word. Effect.
DDL Messages ***WARNING*** Short REDEFINES encountered: FILLER emitted, results in incompatible source structure - item-name Cause. A redefining field or group is shorter than the field or group it redefines, and COBOL output is requested. Effect. The DDL compiler generates filler to make the redefining field or group the same size as the redefined field or group. Recovery. No recovery is necessary. ***WARNING*** Spacing must be 0,1,2, or 3- value not changed Cause.
DDL Messages ***ERROR*** SPI-NULL value on a bit field must be 255field-name Cause. The value is not 255 in the SPI-NULL clause of the type specification for a bit field. Effect. The DDL compiler rejects the bit field definition or the group definition containing the bit field description. Recovery. Change the value in the SPI-NULL clause to 255, or omit the SPI-NULL clause, and recompile the object. ***ERROR*** Structure alignment in C is incompatible with DDL- element-name Cause.
DDL Messages ***ERROR*** Structure alignment in TAL is incompatible with DDL- element-name Cause. An odd-length string definition contains an OCCURS clause that cannot be translated to pTAL or TAL. When generating pTAL or TAL source for a string, the DDL compiler usually emits a struct for the string field. Because this particular string is an odd length, the DDL compiler would have to add a filler to word-align the struct. Effect.
DDL Messages ***ERROR*** TAL name literal too long- commenting out Cause. The key name constructed by the DDL compiler exceeds the maximum allowed length of a pTAL or TAL name. The DDL compiler constructs the name from the names of each element in the name hierarchy and adds ^KEY to the end. Effect. The DDL compiler changes the keytag literal to a pTAL or TAL comment. Recovery. Change the names of elements in the record or reduce the number of levels that make up this key.
DDL Messages Recovery. Consult your system manager to obtain write access to the dictionary. ***WARNING*** This dictionary IS audited Cause. You used a DICTN command to open an audited dictionary. Effect. The DDL compiler opens the specified dictionary anyway. Recovery. No recovery is necessary. ***WARNING*** This dictionary is NOT audited Cause. You used a DICT or DICTR command to open a nonaudited dictionary. Effect. The DDL compiler opens the specified dictionary anyway. Recovery.
DDL Messages Recovery. Remove one of the DEF IS clauses and recompile. ***ERROR*** TOKEN-MAP DEFINITION not specified Cause. No DEF clause is specified in a TOKEN-MAP statement. Effect. The DDL compiler rejects the token map. Recovery. Specify a DEFINITION in the open dictionary with a DEF clause. ***ERROR*** TOKEN-MAP exceeds C 32767-byte limittoken-map-name Cause. A TOKEN-MAP statement generates a C structure that is greater than 32,767 bytes.
DDL Messages ***ERROR*** TOKEN-MAP VALUE multiply defined Cause. The VALUE clause in a TOKEN-MAP statement is already specified. Effect. The DDL compiler rejects the token map. Recovery. Remove one of the VALUE IS clauses and recompile. ***ERROR*** TOKEN-MAP VALUE not defined Cause. No VALUE clause is specified in a TOKEN-MAP statement. Effect. The DDL compiler rejects the token map. Recovery. Specify a VALUE clause. ***ERROR*** TOKEN-MAP VERSION not specified for Line.LineItem.LocalName Cause.
DDL Messages ***ERROR*** TOKEN-TYPE DEFINITION Length * OCCURS exceeds 254 bytes Cause. The length of the definition referenced in a TOKEN-TYPE statement multiplied by the OCCURS value in the statement is longer than 254 bytes. Effect. The DDL compiler rejects the token type. Recovery. Shorten the referenced definition, make it a variable-length type, make the OCCURS value smaller, or use the TOKEN-MAP statement instead; then recompile. ***ERROR*** TOKEN-TYPE DEFINITION multiply defined Cause.
DDL Messages ***ERROR*** TOKEN-TYPE VALUE multiply defined Cause. A VALUE clause is already specified in the TOKEN-TYPE statement. Effect. The DDL compiler rejects the token type. Recovery. Delete one of the VALUE clauses and recompile. ***ERROR*** TOKEN-TYPE VALUE not defined Cause. No VALUE clause is specified in the TOKEN-TYPE statement Effect. The DDL compiler rejects the token type. Recovery. Specify a VALUE clause. ***ERROR*** TOKEN-TYPE VALUE must be between 0 and 255 Cause.
DDL Messages ***ERROR*** Too many names- statement has been ignored Cause. An OUTPUT, OUTPUT UPDATE, DELETE, or SHOW USE OF statement has too many definitions or records. Effect. The DDL compiler ignores the statement. Recovery. Break the list of definitions or records into two or more statements. ***ERROR*** Too many text (common) lines Cause. There are more than 65,777 lines of comment text in a single record or definition or in an element of a record or definition. Effect.
DDL Messages ***ERROR*** Unable to match locale- locale-name Cause. A text item did not have a literal with a locale name the same as specified either with the SETLOCALENAME command, if set, or with the system default locale, if the SETLOCALENAME was not set. Effect. The programming source language statement will not be emitted. Recovery. Either use SETLOCALENAME to set locale or change a locale name associated with the text item so there is a match between the locale and a locale name.
DDL Messages ***ERROR*** Unexpected DDL exception Cause. The DDL compiler encountered an unexpected error. Effect. The DDL compiler issues this message followed by a fatal error message. Recovery. If the problem persists, consult your system manager. ***ERROR*** Union Alignment in C is incompatible with DDLelement Cause. The size of the union field is not a multiple of the alignment of the widest field in the union.
DDL Messages ***ERROR*** Unsigned integer conversion eror- object-name Cause. The value of an unsigned integer has an invalid form: either a negative number or a decimal or octal value. Effect. The DDL compiler rejects the object. Recovery. Correct the error and recompile. ***ERROR*** Unspecified value Cause. You specified a VALUE clause that does not contain a value. Effect. The DDL compiler rejects the object. Recovery. Correct the VALUE clause and recompile the object.
DDL Messages Effect. The DDL compiler groups the bit fields that reside in the same word and generates the output to the integer data type. Recovery. Change the data type and recompile. ***ERROR*** Unterminated SOURCE command on last line not processed Cause. A SOURCE command does not stop with a file name or a closing parenthesis following a list of section names, or a comma is missing after a section name. Effect. The DDL compiler ignores the SOURCE command. Recovery.
DDL Messages Recovery. Correct the error and recompile. ***WARNING*** UPSHIFT on referencing item ignored, UPSHIFT inherited field-name Cause. An UPSHIFT clause describes a field that is defined by reference to an existing definition, and the referenced definition already has an UPSHIFT clause. UPSHIFT cannot be overridden in a referring definition. Effect. The DDL compiler continues processing. Recovery. Remove the UPSHIFT clause from the referring definition.
DDL Messages ***ERROR*** VALUE invalid or inconsistent with data typevalue Cause. The value specified in a VALUE clause cannot be mapped to the declared data type. Effect. The DDL compiler rejects the object. Recovery. Correct the error and recompile. ***ERROR*** VALUE item found with or within an OCCURS name Cause. A field definition or description contains both OCCURS and VALUE clauses. A field described with an OCCURS clause cannot have an initial value. Effect. The DDL compiler rejects the object.
DDL Messages ***ERROR*** Version THRU element doesn’t follow FOR element Cause. The field or group specified after THRU does not follow the field or group specified after FOR in a TOKEN-MAP VERSION clause. Effect. The DDL compiler rejects the token map. Recovery. Check the definition referenced in the TOKEN-MAP statement, and correct the VERSION clause to specify a THRU element that follows a FOR item in the referenced definition; then recompile. ***ERROR*** Version THRU name not found Cause.
B • • Sample Schemas Sample Database Schema on page B-1 Sample SPI Schema on page B-6 Sample Database Schema The sample database schema defines a database consisting of nine files. The database files are defined in RECORD statements that refer to previous DEFINITION statements for their record structures. Many of the individual and group fields within each record also refer to previous DEFINITION statements.
Sample Schemas Database Schema Listing For FORTRAN, the DDL compiler issues warning messages for all constants; constants are not supported by FORTRAN. The constants that describe display, heading, and help values are not used by the source code, so this causes no problems; the generated source code will execute successfully. Database Schema Listing Figure B-1.
Sample Schemas Database Schema Listing Figure B-1. Database Schema Listing (page 2 of 5) !*************************************************************** ! FIELD DEFINITIONS !*************************************************************** DEFINITION custnum PIC 9(4) HEADING custnum-heading. DEFINITION suppnum PIC 9(4) HEADING suppnum-heading. DEFINITION partnum PIC 9(4) HEADING partnum-heading. DEFINITION ordernum PIC 9(4) HEADING ordernum-heading. DEFINITION empnum PIC 9(4) HEADING empnum-heading.
Sample Schemas Database Schema Listing Figure B-1. Database Schema Listing (page 3 of 5) * Definition for ORDERS Record DEFINITION orderinfo. 02 ordernum TYPE *. 02 orderdate TYPE mdy-date. 02 deldate TYPE mdy-date. 02 salesperson TYPE empnum HEADING salesperson-heading. 02 custnum TYPE *. END * Definition for PARTS Record DEFINITION partsinfo. 02 partnum TYPE *. 02 partname TYPE name. 02 inventory PIC 9(3)S. 02 location PIC X(3). 02 price PIC 9(6)V9(2).
Sample Schemas Database Schema Listing Figure B-1. Database Schema Listing (page 4 of 5) !*************************************************************** ! FILE DEFINITIONS !*************************************************************** * Contains customer information for each customer RECORD customer. FILE IS "$data.sales.customer" KEY-SEQUENCED AUDIT MAXEXTENTS 100. DEFINITION IS custinfo. KEY IS customer.custnum DUPLICATES NOT ALLOWED. KEY "cn" IS customer.custname.
Sample Schemas Sample SPI Schema Figure B-1. Database Schema Listing (page 5 of 5) * Contains information about each supplier of parts RECORD supplier. FILE IS "$data.sales.supplier" KEY-SEQUENCED AUDIT MAXEXTENTS 100. DEFINITION IS suppinfo. KEY IS supplier.suppnum DUPLICATES NOT ALLOWED. KEY "su" IS supplier.suppname. END * Contains information about company's regional offices RECORD region. FILE IS "$data.sales.region" KEY-SEQUENCED AUDIT MAXEXTENTS 100. DEFINITION IS reginfo. KEY IS region.
Sample Schemas Sample SPI Schema You do not generate COBOL, pTAL, TAL, or TACL source code for the standard SPI definitions; HP supplies the COBOL, pTAL, TAL, or TACL source code in these files: Language File COBOL ZSPIDEF.ZSPICOB pTAL or TAL ZSPIDEF.ZSPITAL TACL ZSPIDEF.ZSPITACL For this example, the DDL definitions that are not part of the standard SPI definition file are contained in the file ASSNDDL.
Sample Schemas DDL Commands to Create an SPI Schema DDL Commands to Create an SPI Schema Example B-1 on page B-8 creates a dictionary from the DDL source file containing standard SPI definitions (ZSPIDEF.ZSPIDDL) and from the file ASSNDDL containing subsystem-specific definitions. Example B-1. Creating an SPI Schema ?ERRORS 1 ?DICT ! ?COMMENTS ?SOURCE ZSIPDEF.
Sample Schemas Selected ZSPIDDL Statements Example B-2. ZSPIDDL Statements DEF DEF DEF DEF zspi-ddl-int zspi-ddl-int2 zspi-ddl-uint zspi-ddl-enum TYPE BINARY 16 SPI-NULL 0. TYPE BINARY 32 SPI-NULL 0. TYPE BINARY 16 UNSIGNED SPI-NULL 0. PIC S9(4) COMP SPI-NULL 255 TACL enum. DEF DEF zspi-ddl-boolean zspi-ddl-byte TYPE zspi-ddl-int TYPE BINARY 8 UNSIGNED DEF zspi-ddl-char8. 02 z-c PIC X(8) 02 z-s REDEFINES z-c.
Sample Schemas ASSNDDL Statements ASSNDDL Statements The DDL statements in Figure B-2 on page B-10 are in the sample DDL file ASSNDDL. They are the statements needed by the sample subsystem in addition to those provided by ZSPIDEF.ZSPIDDL. Figure B-2. Sample DDL File ASSNDDL ? SECTION assn-defs DEF assn-variable-token. 02 table-size 02 data-table END TYPE zspi-ddl-int. TYPE zspi-ddl-int2 DEF assn-ddl-jobinfo.
Sample Schemas ASSNDDL Statements Figure B-2. Sample DDL File ASSNDDL ! Token-map definition: TOKEN-MAP assn-map-jobinfo END VERSION "D00" VERSION "D30" NOVERSION VERSION "D30" ! Subsystem-ID definition: DEF assn-val-ssid 02 z-filler 02 z-owner 02 z-number 02 z-version END VALUE IS assn-tnm-jobinfo DEF IS assn-ddl-jobinfo. FOR jnumber THRU location. FOR jobclass-is-present. FOR jobclass. FOR jobusername. TACL ssid. TYPE CHARACTER 8 VALUE IS assn-val-yourco. TYPE zspi-ddl-char8 REDEFINES z-filler.
C DDL Data Translation This appendix explains how data defined in DDL is translated to each of the seven supported host languages. The DDL compiler can translate any definition or record to data-declaration source code for host languages [C, COBOL, FORTRAN, Pascal (on D-series systems), TACL, TAL, and pTAL].
DDL Data Translation Table C-1.
DDL Data Translation Table C-1.
DDL Data Translation Table C-2.
DDL Data Translation Table C-3.
DDL Data Translation Table C-3. Sample DDL/FORTRAN Data Translation Table (page 2 of 2) DDL Clause Type DDL Clause Specification FORTRAN Data Type TYPE LOGICAL [2] LOGICAL TYPE LOGICAL 4 LOGICAL*4 TYPE ENUM INTEGER*2 TYPE CHARACTER 8 OCCURS 100 TIMES CHARACTER*8 (1:100) TYPE BINARY 16 OCCURS 3 TIMES INTEGER*2 1. Groups bit fields that can fit in the same word and generates a filler in the word’s type. 2.
DDL Data Translation Table C-4.
DDL Data Translation Table C-4. Sample DDL/Pascal Data Translation Table (page 2 of 2) DDL Clause Type DDL Clause Specification Pascal Data Type TYPE TYPE LOGICAL 1 BOOLEAN TYPE LOGICAL[2] INT16 TYPE LOGICAL 4 INT32 TYPE ENUM INT16 TYPE CHARACTER 8 OCCURS 100 TIMES Array[1..100] of FSTRING(8) TYPE BINARY 16 OCCURS 3 TIMES Array[1..3] of INT16 * Only one of the possible forms of the clause; see DICTOBL (Object Build List) on page D-15, for the byte lengths of all forms of the clause..
DDL Data Translation Table C-5.
DDL Data Translation Table C-5. Sample DDL/TACL Data Translation Table (page 2 of 2) DDL Clause Type DDL Clause Specification TACL Data Type TYPE TYPE LOGICAL 1 BYTE TYPE LOGICAL[2] BOOL TYPE LOGICAL 4 INT2 TYPE ENUM ENUM TYPE CHARACTER 8 OCCURS 100 TIMES STRUCT(0:99); BEGIN CHAR BYTE(0:9); END; TYPE BINARY 16 OCCURS 3 TIMES INT(0:2); * Groups bit fields that can fit in the same word and generates a filler in the word’s type.
DDL Data Translation Table C-6.
DDL Data Translation Table C-6.
D Dictionary Database Structure A dictionary is itself a DDL database consisting of 14 files. The DDL compiler supplies the names of the dictionary database files; these names must not be changed. Topics in this appendix: • • • Dictionary Components on page D-1 Dictionary Files on page D-3 Definition and Record Storage in the Dictionary on page D-64 Note. Information in this appendix is not guaranteed to remain the same or to change in compatible ways from RVU to RVU.
Dictionary Database Structure Elements If a dictionary is part of a Pathmaker application catalog, the Pathmaker product can store additional objects in the dictionary. The Pathmaker product manages four types of objects that it can store in a dictionary: • • • • Servers Services Requesters Screens The DDL compiler assigns each object a unique object number for identification. Object numbers are assigned in ascending order and are never reused.
Dictionary Database Structure Dictionary Files The dictionary stores all of the text items associated with each statement in a text file. Each text item is uniquely identified by a text ID number. A single text item can consist of a list of several lines of text; the list is ordered by element number. Table D-1 on page D-3 shows the text items described in the following three objects: CONSTANT custnum-heading VALUE "Customer". DEF initials PIC XXX VALUE ALL SPACES HELP "Initials".
Dictionary Database Structure • • • • • DICTALT (Alternate Key File) DICTOUK (Object Usage Key File) on page D-47 DICTRDF (Record Definition File) on page D-47 DICTTKN (Token Code File) on page D-57 DICTTYP (Token Type File) on page D-59 DICTVER (Token Map Field Version File) on page D-62 All dictionary files are key-sequenced except DICTDDF, which is unstructured. The dictionary is itself a database. HP supplies the DDL schema for the dictionary database in the following file: $SYSTEM.SYSTEM.
Dictionary Database Structure DICTCDF (Constant Definition File) Figure D-1. DICTCDF (Constant Definition File)—G-Series Record CDF. File is "DICTCDF" Key-sequenced Code 207 Audit. 02 OBJECT-NUMBER Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Object/Number". 02 TEXT-ID Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Text Id/Number".
Dictionary Database Structure DICTDDF (Dictionary Definition File) Figure D-2. DICTCDF (Constant Definition File)—H-Series (page 2 of 2) 02 CONSTANT-TYPE-EXPLICIT Type ASCII-SWITCH Heading "Type/Explicitly Given". Key is OBJECT-NUMBER Duplicates not allowed. End Table D-2. DICTCDF (Constant Definition File) Fields Field Description OBJECT-NUMBER The object number of this record from DICTODF.OBJECT. The record in DICTODF contains the constant name and its object-type code, “CD.
Dictionary Database Structure DICTDDF (Dictionary Definition File) Figure D-3. DICTDDF (Dictionary Definition File)—G-Series Record DDF. File is "DICTDDF" Unstructured Code 200 Ext 2. 02 NEXT-OBJ Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Next/Object". 02 NEXT-TEXT-ID Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Next/Text Id". 02 VERSION Type Binary 16 Unsigned MUST BE 6 VALUE 6 Heading "Dict/Version". 02 CREATOR-USERID Heading "Creator User Id" TACL USERNAME.
Dictionary Database Structure DICTKDF (Key Definition File) Table D-3. DICTDDF (Dictionary Definition File) Fields Field Description NEXT-OBJ Object number that the DDL compiler assigns to the next record or definition added to the dictionary, or that the Pathmaker product assigns to the next service, server, requester, or screen added to the dictionary.
Dictionary Database Structure DICTKDF (Key Definition File) Figure D-5. DICTKDF (Key Definition File)—G-Series (page 1 of 2) Record KDF. File is "DICTKDF" Key-sequenced Code 206 Audit. 02 IDENTIFIER. 03 RECORD-NUMBER 03 ELEMENT Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Record/Number". Type Binary 16 Display "I3" Heading "Key/Num". 02 OBL-KEY. 03 OBJECT Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Object/Number". 03 ELEMENT Type Binary 16 Display "I3" Heading "Element/Number".
Dictionary Database Structure DICTKDF (Key Definition File) Figure D-5. DICTKDF (Key Definition File)—G-Series (page 2 of 2) 02 KEY-UNIQUE Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "Y" Heading "Key/Uniq". 02 KEY-UPDATE Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "Y" Heading "Key/Update". 02 KEY-FILE-NAME Type Character 34 UPSHIFT Heading"Physical File Name". 02 FILLER Type Character 30. Key is IDENTIFIER Duplicates not allowed. Key "OK" is OBL-KEY.
Dictionary Database Structure DICTKDF (Key Definition File) Figure D-6. DICTKDF (Key Definition File)—H-Series (page 2 of 2) 02 FIELD. 03 OFFSET Type Binary 16 Display "I4" Heading "Offset". 03 ELEMENT-SIZE Type Binary 16 Display "I4" Heading "Size". 02 NULL-VALUE Type *. 02 NULL-VALUE-SPECIFIED Type ASCII-SWITCH VALUE "N" Heading "Null/Specified". 02 KEY-CLASS Pic "XXX" VALUE "PRI" Heading "Key/Class". 02 KEY-UNIQUE Type ASCII-SWITCH VALUE "Y" Heading "Key/Uniq".
Dictionary Database Structure DICTKDF (Key Definition File) Table D-4. DICTKDF (Key Definition File) Fields (page 2 of 2) Field Description KEYTAG-STRING A 2-character string used when the Enscribe key specifier is declared as two ASCII characters. KEYTAG-STRING redefines KEYTAG-VALUE as a 2-byte string. KEYTAG-OBJECT If the keytag value is defined by a constant, contains the object number of the constant.
Dictionary Database Structure DICTMAP (Token Map File) DICTMAP (Token Map File) DICTMAP (Token Map File) is a key-sequenced file that contains one record for each SPI token map. Each record contains detailed information about a token map, including its unique token number, and the object number of the definition that describes the extensible structured token associated with the token map. Additional information about token maps is contained in the Version File (DICTVER).
Dictionary Database Structure DICTMAP (Token Map File) Figure D-8. DICTMAP (Token Map File)—H-Series Record MAP. File is "DICTMAP" Key-sequenced Code 209 Audit MaxExtents 500. 02 OBJECT-NUMBER Type * Heading "Token Map/Object". 02 TOKEN-NUMBER-VALUE Type Binary 16 Heading "Token Numb". 02 TOKEN-NUMBER-CONSTANT Type OBJECT-NUMBER Heading "Token Numb/Object". 02 MAP-DEF Type OBJECT-NUMBER Heading "Map Def/Object". 02 SSID-TEXT Type TEXT-ID Heading "SSID".
Dictionary Database Structure DICTOBL (Object Build List) DICTOBL (Object Build List) DICTOBL (Object Build List) is a key-sequenced file that contains one record for each element of each unique object in the dictionary. The primary key of the file is the OBJECT field from DICTODF plus a sequentially assigned element number. An object can contain one or more elements. Example D-2. Object With Multiple Elements DEF example. 02 field-1 PIC X. 02 group-2 03 field-3 PIC X.
Dictionary Database Structure DICTOBL (Object Build List) Figure D-9. DICTOBL (Object Build List)—G-Series (page 1 of 6) Record OBL. File is "DICTOBL" Key-sequenced MaxExtents 500 Code 204 Audit. 02 IDENTIFIER. 03 OBJECT Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Object/Number". 03 ELEMENT Type Binary 16 Display "I3" Heading "Element/Number". 02 LEVEL Type Binary 16 Display "I2" Heading "LV". 02 LOCAL-NAME Type Character 30 Heading "Element Name".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-9. DICTOBL (Object Build List)—G-Series (page 2 of 6) 02 EDIT-PIC-TEXT Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Edit Pic/Text ID". 02 TACL-TYPE Type Character 2 UPSHIFT Heading "TACL/Type" MUST BE "CP", "DV", "EN", "FN", "F3", "PH", "SI", "SV", "TI", "TS", "UN", " ". 02 SOURCE-DEF Pic "9(9)" COMP Display "[BZ]I10" Null 0 Heading "Source/Def". 02 ELEMENT-REDEFINED Type Binary 16 Display "[BZ]I3" Heading "Element/Redefined".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-9. DICTOBL (Object Build List)—G-Series (page 3 of 6) 02 STARTING Type Binary 16 Display "I4" Heading "Starting/Element". 02 ENDING Type Binary 16 Display "I4" Heading "Ending/Element". 02 TALBOUND Type Binary 16 Heading "Talbound". 02 NULL-VALUE Type Binary 16 Display "I5" Heading "Null/Value". 02 NULL-VALUE-OBJECT Pic "9(9)" COMP Display "[BZ]I10" Null 0 Heading "Null Value/Object #".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-9. DICTOBL (Object Build List)—G-Series (page 4 of 6) 02 GROUP-COMP Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "N" Heading "Computational". 02 SOURCE-DEF-FLAG Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "N" Heading "Sourced/Item". 02 NOVALUE Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "N" Heading "No Value".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-9. DICTOBL (Object Build List)—G-Series (page 5 of 6) 02 ENUM-DEF Pic "9(9)" COMP Display "[BZ]I10" Null 0 Heading "Enum/Def". 02 PASCALBOUND Type Binary 16 Heading "Pascalbound". 02 INDEX-NAME Type Character 30 Heading "Indexed By". 02 EXTERNAL-SPECIFIED Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "N" Heading "External".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-9. DICTOBL (Object Build List)—G-Series (page 6 of 6) 02 SQLNULLABLE-FILLERS End Type Binary 16 Display "I4" Heading "SqlNull/Filler" VALUE "0" Figure D-10. DICTOBL (Object Build List)—H-Series (page 1 of 4) Record OBL. File is "DICTOBL" Key-sequenced Code 204 Audit MaxExtents 500. 02 IDENTIFIER Type FIELD. 02 LEVEL Type Binary 16 Display "I2" Heading "LV". 02 LOCAL-NAME Type NAME Heading "Element Name".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-10. DICTOBL (Object Build List)—H-Series (page 2 of 4) 02 ELEMENT-REDEFINED Type Binary 16 Display "[BZ]I3" Heading "Element/Redefined". 02 OBJ-CLASS Type Binary 16 Display "[ZA1'Grp',PA1'Elm']I3" Heading "Grp/Elm". 02 STRUCTURE Type Binary 16 Display "I2" Heading "Data/Type". 02 ELEMENT-SIZE Type Binary 16 Display "I4" Heading "Size". 02 SCALE Type Binary 16 Display "[BZ]I2" Heading "Scale".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-10. DICTOBL (Object Build List)—H-Series (page 3 of 4) 02 SPI-NULL-VALUE Type NULL-VALUE Heading "SPI-Null/Value". 02 SPI-NULL-VALUE-OBJECT Type OBJECT-NUMBER Null 0 Heading "SPI-Null/Object #". 02 NULL-VALUE-SPECIFIED Type ASCII-SWITCH VALUE "N" Heading "Null/Specified". 02 SPI-NULL-VALUE-SPECIFIED ASCII-SWITCH VALUE "N" Heading "SPI-Null/Specified". 02 UPSHIFT ASCII-SWITCH VALUE "N" Heading "Upshift".
Dictionary Database Structure DICTOBL (Object Build List) Figure D-10. DICTOBL (Object Build List)—H-Series (page 4 of 4) 02 BIT-OFFSET Type Binary 16 Display "I4" Heading " Bit/Offset". 02 ENUM-DEF Type OBJECT-NUMBER Null 0 Heading "Enum/Def". 02 PASCALBOUND Type Binary 16 Heading "Pascalbound". 02 INDEX-NAME Type NAME Heading "Indexed By". 02 EXTERNAL-SPECIFIED Type ASCII-SWITCH VALUE "N" Heading "External". 02 JUSTIFY Type ASCII-SWITCH VALUE "N" Heading "Justify".
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 1 of 8) Field Description IDENTIFIER A unique identifier for each object in the dictionary, consisting of the next two fields, OBJECT and ELEMENT. OBJECT The object number of the definition or record. ELEMENT The element number of the group or field within the object. Element numbers are assigned sequentially, starting with 0. Element number 0 describes the entire object.
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 2 of 8) Field Description PICTURE-TEXT The text ID of the OTF record that contains the PICTURE string for this element. The text type for this field is S (string). If the element was not defined with a PICTURE clause, this field is set to 0. HELP-TEXT The text ID of the OTF record that contains the help text for this element. The text type for this field is S (string).
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 3 of 8) Field Description SOURCE-DEF The object number of the referenced definition when this element is described by TYPE def-name or TYPE *. SOURCE-DEF is an alternate key to the OBL. The DDL compiler uses this key to determine whether a definition is referenced by any other record or definition and to find the name of the referenced definition.
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 4 of 8) Field Description ELEMENT-SIZE The number of bytes per occurrence of this element. The total size of the element is equal to ELEMENTSIZE times OCCURS-MAX. For an SQL VARCHAR element, this field contains the actual length of the element.
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 5 of 8) Field Description ENDING The last element of the set of elements renamed by a level 66 RENAMES clause, where this ending element ends at the same position as the renaming element. TALBOUND Contains a binary value that specifies the lower limit of pTAL or TAL arrays. Valid values are 0 and 1. The default value for this field is 1.
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 6 of 8) Field Description SOURCE-DEF-FLAG Contains the ASCII character Y (yes) to indicate this item is defined with TYPE * or TYPE def-name or N (no) to indicate it is not. N is the default. NOVALUE Contains the ASCII character Y (yes) or N (no) to indicate whether this item has the NOVALUE attribute. NOVALUE suppresses any VALUE IS clause in a referenced definition.
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 7 of 8) Field Description ENUM-DEF Contains the object number of the enumeration definition specified in the ENUM clause of a bit map item. For an item that is not a bit map, this field contains the null value for OBJECT-NUMBER. PASCALBOUND (D-series systems only) Contains the value of the lower bound, 0 or 1, for Pascal arrays. 1 is the default.
Dictionary Database Structure DICTOBL (Object Build List) Table D-7. DICTOBL (Object Build List) Fields (page 8 of 8) Field Description DATETIME-FRACTION-PRECISION Contains the number of significant digits with which the fraction of a second is specified. This field stores the value of end-field-precision of FRACTION (one of the end-date-time qualifiers) in an SQL DATETIME or SQL INTERVAL line item. The valid range for this value is 1 through 6.
Dictionary Database Structure DICTOBL (Object Build List) Table D-9. TACL-TYPE Codes (page 2 of 2) Code TACL Type TI TRANSID TS TSTAMP UN USERNAME Example D-3. SOURCE-DEF Field DEF date. 02 year 02 month 02 day END PIC 99. PIC 99. PIC 99. DEF ord-header. 02 order-date TYPE date. END DEF order. 02 header END TYPE ord-header. Table D-10. OBJ-CLASS Codes Code Meaning 0 Group field 1 Elementary field Table D-11.
Dictionary Database Structure DICTOBL (Object Build List) Table D-11.
Dictionary Database Structure DICTOBL (Object Build List) Table D-11.
Dictionary Database Structure DICTOBL (Object Build List) Table D-12.
Dictionary Database Structure DICTODF (Object Definition File) Table D-13.
Dictionary Database Structure DICTODF (Object Definition File) Figure D-11. DICTODF (Object Definition File)—G-Series (page 2 of 2) 02 IDENTIFIER Null " " Heading "Object Identifier". 03 OBJ-TYPE Type Character 2 MUST BE "ID","RD","CD","TT", "TC","TM","SR","SV", "RQ","TB" UPSHIFT Heading "Obj/Type". 03 NAME Type Character 30 Heading "Object Name". 02 VERSION Type Binary 16 Unsigned Display "I3" Heading "Cur/Ver". 02 DATE-CREATED Type Character 6 Heading "Date-Time/Created".
Dictionary Database Structure DICTODF (Object Definition File) Figure D-12. DICTODF (Object Definition File)—H-Series Record ODF. File is "DICTODF" Key-sequenced Code 202 Audit MaxExtents 500. 02 OBJECT Type OBJECT-NUMBER. 02 IDENTIFIER Type OBJECT-IDENTIFIER. 02 VERSION Type Binary 16 Unsigned Display "I3" Heading "Cur/Ver". 02 DATE-CREATED Type INTERNAL-TIMESTAMP Heading "Date-Time/Created". 02 CREATOR-USERID Type USERID-NAME Heading "Created By".
Dictionary Database Structure DICTODF (Object Definition File) Table D-14. DICTODF (Object Definition File) Fields (page 2 of 2) Field Description VERSION An integer value that is incremented every time the object is updated in this dictionary. Because the DDL compiler does not allow partial updating of an object, VERSION reflects how many times the object has been compiled since the dictionary was created.
Dictionary Database Structure DICTOTF (Object Text File) Table D-15. OBJ-TYPE Values (page 2 of 2) Value Object Type Description SR SERVER* Application program that performs one or more services SV SERVICE* Unit of work performed by a server RQ REQUESTER* Equivalent to a SCREEN COBOL program SC SCREEN* Equivalent to the SCREEN SECTION of a SCREEN COBOL program. * This object type is defined and used in Pathmaker applications.
Dictionary Database Structure DICTOTF (Object Text File) Figure D-13. DICTOTF (Object Text File)—G-Series (page 2 of 2) 02 CONSTANT-TYPE-STRING 88 CONSTANT-STRING 88 CONSTANT-VERSION 88 CONSTANT-BINARY-16 88 CONSTANT-BINARY-UNSIGNED 88 CONSTANT-BINARY-32 88 CONSTANT-BINARY-32-UNSIGNED 88 CONSTANT-BINARY-64 88 CONSTANT-NATIONAL-STRING PIC "XX" Value is Value is Value is Value is Value is Value is Value is Value is "ST". "VR". "2S". "2U". "4S". "4U". "8S". "NS".
Dictionary Database Structure DICTOTF (Object Text File) Figure D-14. DICTOTF (Object Text File)—H-Series (page 2 of 2) 02 CONSTANT-TYPE-STRING 88 CONSTANT-STRING 88 CONSTANT-VERSION 88 CONSTANT-BINARY-16 88 CONSTANT-BINARY-UNSIGNED 88 CONSTANT-BINARY-32 88 CONSTANT-BINARY-32-UNSIGNED 88 CONSTANT-BINARY-64 88 CONSTANT-NATIONAL-STRING PIC "XX" Value is Value is Value is Value is Value is Value is Value is Value is "ST". "VR". "2S". "2U". "4S". "4U". "8S". "NS".
Dictionary Database Structure DICTOTF (Object Text File) Table D-16. DICTOTF (Object Text File) Fields Field Description IDENTIFIER A group that uniquely identifies each record in DICTOTF, consisting of the next two fields, TEXT-ID and LINENUMBER. TEXT-ID A number that uniquely identifies a text item. The value of TEXT-ID can be used as a link to DICTODF and DICTOBL through the following fields: • • • • • • • • ODF.COMMENT-TEXT OBL.COMMENT-TEXT OBL.DISPLAY-TEXT OBL.HEADING-TEXT OBL.HELP-TEXT OBL.
Dictionary Database Structure DICTOUF (Object Usage File) Table D-17. TEXT-TYPE Codes Code Meaning K Keyword N ASCII representation of a numeric literal S Alphanumeric string E Enumeration value name J National string DICTOUF (Object Usage File) DICTOUF (Object Usage File) is a key-sequenced file that contains one record for each object that is used by another object. This file indicates which objects are used by which other objects.
Dictionary Database Structure DICTOUF (Object Usage File) Figure D-15. DICTOUF (Object Usage File)—G-Series (page 2 of 2) 03 CONSUMER Null 0 Heading "Consumer/Object". 04 OBJ-TYPE Type Character 2 MUST BE "ID","RD","CD" "TT", "TC", TM","SR","SV", "RQ","TB" UPSHIFT Heading "Obj/Type". 04 NAME Type Character 30 Heading "Object Name". 02 REPLACEMENT-ALLOWED 88 REPLACEMENT-IS-ALLOWED 88 REPLACEMENT-NOT-ALLOWED Type Character 1. Value is "Y". Value is "N". Key is IDENTIFIER Duplicates not allowed.
Dictionary Database Structure DICTOUK (Object Usage Key File) Table D-18. DICTOUF (Object Usage File) Fields (page 2 of 2) Field Description OBJECT-TYPE Contains a 2-character ASCII code from Table D-19 on page D-47, which indicates the type of the object being used in the DDL subsystem. NAME Contains the name of the object.
Dictionary Database Structure DICTRDF (Record Definition File) Change bars in Figure D-18 on page D-50 show where it differs from Figure D-17 on page D-48. These tables apply to both G-series and H-series systems: • • • Table D-20, DICTRDF (Record Definition File) Fields, on page D-53 Table D-21, FILE-TYPE Codes, on page D-56 Table D-22, FILE-DURATION Values, on page D-56 Figure D-17. DICTRDF (Record Definition File)—G-Series (page 1 of 3) Record RDF. File is "DICTRDF" Key-sequenced Code 205 Audit.
Dictionary Database Structure DICTRDF (Record Definition File) Figure D-17. DICTRDF (Record Definition File)—G-Series (page 2 of 3) 02 SECONDARY-EXTENT-SIZE Type Binary 16 VALUE 32 Display "I5" Heading "Secondary/Ext Size". 02 SECONDARY-EXTENT-OBJECT Pic "9(9)" COMP VALUE 0 Null 0 Display "I5" Heading "Sec Ext/Object". 02 REFRESH Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "N" Heading "Refresh".
Dictionary Database Structure DICTRDF (Record Definition File) Figure D-17. DICTRDF (Record Definition File)—G-Series (page 3 of 3) 02 MAXEXTENTS Type Binary 16 VALUE 100 Display "I4" Heading "Maxextents". 02 MAXEXTENTS-OBJECT Pic "9(9)" COMP VALUE 0 Null 0 Display "I5" Heading "Max Ext/Object". 02 BUFFERED Type Character 1 VALUE "D" Display "A1" Heading "Buffered". 02 AUDIT-COMPRESS Type Character 1 MUST BE "Y", "N" UPSHIFT Display "A1" VALUE "N" Heading "Audit/Compress".
Dictionary Database Structure DICTRDF (Record Definition File) Figure D-18. DICTRDF (Record Definition File)—H-Series (page 2 of 3) 02 RECORD-LENGTH Type Binary 16 Heading "Record/Length". 02 FILE-NAME Type *. 02 FILE-TYPE Type Character 1 Heading "File/Type". 02 FILE-DURATION Type Character 1 VALUE "P" Heading "File/Dur". 02 FILE-CODE Type Binary 16 Unsigned VALUE 0 Display "I5" Heading "File/Code". 02 FILE-CODE-OBJECT Type OBJECT-NUMBER VALUE 0 Null 0 Display "I5" Heading "File Code/Object".
Dictionary Database Structure DICTRDF (Record Definition File) Figure D-18. DICTRDF (Record Definition File)—H-Series (page 3 of 3) 02 BLOCK-SIZE-OBJECT OBJECT-NUMBER VALUE 0 Null 0 Display "I5" Heading "Blk Siz/Object". 02 BUFFER-SIZE-OBJECT OBJECT-NUMBER VALUE 0 Null 0 Display "I5" Heading "Buf Siz/Object". 02 ICOMPRESS Type ASCII-SWITCH VALUE "N" Heading "ICompress". 02 DCOMPRESS Type ASCII-SWITCH VALUE "N" Heading "DCompress".
Dictionary Database Structure DICTRDF (Record Definition File) Table D-20. DICTRDF (Record Definition File) Fields (page 1 of 3) Field Description OBJECT Contains the object number of this record from DICTODF.OBJECT. The record in DICTODF contains the record name and the object-type code “RD.” DEF-NUMBER The object number of the definition that defines this record if the record is described with a DEFINITION IS def-name clause; otherwise, DEFNUMBER contains the object number of the record itself.
Dictionary Database Structure DICTRDF (Record Definition File) Table D-20. DICTRDF (Record Definition File) Fields (page 2 of 3) Field Description SECONDARY-EXTENT-SIZE This file's secondary extent in pages. SECONDARY-EXTENT-SIZE must be an integer from 1 through 65,535. The default secondary extent size for DDL is 32 pages. Like the primary extent size, the secondary extent size must be an integral multiple of the file's block size (for a structured file) or buffer size (for an unstructured file).
Dictionary Database Structure DICTRDF (Record Definition File) Table D-20. DICTRDF (Record Definition File) Fields (page 3 of 3) Field Description MAXEXTENTS-OBJECT If MAXEXTENTS is defined by a constant, contains the object number of the constant; otherwise, it is 0. BUFFERED Indicates the mode of handling write requests. BUFFERED can be B (yes), N (no), or D (follow the default). The default value is B for audited files and N for nonaudited files.
Dictionary Database Structure DICTRDF (Record Definition File) Table D-21. FILE-TYPE Codes Code File Type U Unstructured R Relative E Entry-sequenced K Key-sequenced Table D-22.
Dictionary Database Structure DICTTKN (Token Code File) DICTTKN (Token Code File) DICTTKN (Token Code File) is a key-sequenced file that contains one record for each SPI token code. Each record contains the detailed information about a token code, including the object number of the token code, the object number of the associated token type, and the value of the token number that identifies the token code within its type.
Dictionary Database Structure DICTTKN (Token Code File) Figure D-19. DICTTKN (Token Code File)—G-Series (page 2 of 2) 02 DISPLAY-TEXT Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Display". Key is OBJECT-NUMBER Duplicates not allowed. End Figure D-20. DICTTKN (Token Code File)—H-Series Record TKN. File is "DICTTKN" Key-sequenced Code 209 Audit. MaxExtents 500. 02 OBJECT-NUMBER Type * Heading "Token Code/Object". 02 TOKEN-TYPE-OBJECT Type OBJECT-NUMBER Heading "Token Type/Object".
Dictionary Database Structure DICTTYP (Token Type File) Table D-23. DICTTKN (Token Code File) Fields (page 2 of 2) Field Description TOKEN-NUMBER-VALUE Contains the token number used by a subsystem to distinguish one token code from another. Token numbers can be in the range -32,768 through 32,767. Any user-supplied token numbers must be in the range 1 through 9,998; the other token numbers are reserved by HP or are previously defined by SPI.
Dictionary Database Structure DICTTYP (Token Type File) Figure D-21. DICTTYP (Token Type File)—G-Series (page 2 of 2) 02 TOKEN-TYPE-CONSTANT Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Constant/Object". 02 TOKEN-DEF Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Def/Object". 02 TOKEN-OCCURS-VALUE Type Binary 16 Heading "Token/Occurs". Value is -1. Value is 0. 88 OCCURS-VARYING 88 OCCURS-0 02 TOKEN-OCCURS-CONSTANT Pic "9(9)" COMP Null 0 Display "[BZ]I10" Heading "Occurs/Object".
Dictionary Database Structure DICTTYP (Token Type File) Figure D-22. DICTTYP (Token Type File)—H-Series (page 2 of 2) 02 TOKEN-LENGTH Type Binary 16 Unsigned Heading "Token/Length". Key is OBJECT-NUMBER Duplicates not allowed. End Table D-24. DICTTYP (Token Type File) Fields Field Description OBJECT-NUMBER Contains the object number of this record from DICTODF.OBJECT. A record in DICTODF contains the token-type name and its object-type code, “TT.
Dictionary Database Structure DICTVER (Token Map Field Version File) Table D-25. TOKEN-OCCURS-VALUE Values Value Meaning 255 OCCURS VARYING 0 OCCURS 0 TIMES n OCCURS n TIMES when 1 <=n <=254 DICTVER (Token Map Field Version File) DICTVER (Token Map Field Version File) is a key-sequenced file that associates product version numbers from VERSION clauses in an SPI token-map definition with single fields or sequences of fields in a structured token.
Dictionary Database Structure DICTVER (Token Map Field Version File) Figure D-23. DICTVER (Token Map Field Version File)—G-Series 02 VERSION-TEXT Type Character 3 Heading "Version/String". Key is IDENTIFIER Duplicates not allowed. End Figure D-24. DICTVER (Token Map Field Version File)—H-Series Record VER. File is "DICTVER" Key-sequenced Code 209 Audit MaxExtents 500. 02 IDENTIFIER. 03 MAP-OBJECT Type OBJECT-NUMBER Heading "Token Map/Object". 03 MAP-ELEMENT Type Binary 16 Heading "Element".
Dictionary Database Structure Definition and Record Storage in the Dictionary Table D-26. DICTVER (Token Map Field Version File) Fields (page 2 of 2) Field Description BEG-ELEMENT Contains the element number from DICTOBL for the first element specified in the sequence of fields with this product version. END-ELEMENT Contains the element number from DICTOBL for the last element in the sequence of fields with this product version.
Dictionary Database Structure • • DICTDDF (Dictionary Definition File) DICTKDF (Key Definition File) on page D-68 Dictionary Structure Link Diagram on page D-69 DICTDDF (Dictionary Definition File) DICTDDF, an unstructured file, contains only one record. The most important fields in this file for record and definition storage are NEXT-OBJ and NEXT-TEXT-ID. Field Description NEXT-OBJ NEXT-OBJ is used by the DDL compiler to assign object numbers to objects as they are entered in the dictionary.
Dictionary Database Structure DICTOBL (Object Build List) DICTOBL (Object Build List) DICTOBL, a key-sequenced file, contains one record for each element of each DDL object (record or definition) in the dictionary. The primary key of DICTOBL is the object number (IDENTIFIER.OBJECT) and an element number (IDENTIFIER.ELEMENT) that identifies each element within an object.
Dictionary Database Structure DICTRDF (Record Definition File) For the sample dictionary shown in Example D-4 on page D-64, the fields of DICTOTF have these values: IDENTIFIER. TEXT-ID IDENTIFIER.
Dictionary Database Structure DICTKDF (Key Definition File) When a record is declared with a DEFINITION IS clause, DICTOBL has no entry for the new record. Instead, the data structure is found in DICTOBL by looking up the referenced definition number in DICTRDF. DICTKDF (Key Definition File) DICTKDF contains one record for each primary key and each alternate key, or each SEQUENCE IS field declared for each record in the dictionary.
Dictionary Database Structure Dictionary Structure Link Diagram Dictionary Structure Link Diagram Figure D-25 on page D-69 shows the main database links in the dictionary database. Figure D-25. Main Links Among Dictionary Files Legend: DDF **Primary Key *Alternate Key 02 next-object 02 next-text-id . . TKN **02 object-number 02 token-type-object . . 02 ssid-text 02 heading-text 02 display-text ODF **02 object *02 identifier 03 obj-type 03 name . . 02 comment-text RDF **02 object *02 def-number . .
E Dictionary Reports HP supplies a set of Enform Plus queries that you can use to get information about any dictionary. These queries produce a set of reports that provide the following information: • A list of all the objects in the dictionary, including any constants, definitions, records, and Subsystem Programmatic Interface (SPI) token codes, token maps, and token types. • • A description of the structure of each definition and record.
Dictionary Reports Using Enform Plus Queries for Dictionary Reports Table E-1. Dictionary Report Queries (page 1 of 2) Query Name Report Description R1 DICTIONARY OBJECTS Describes every constant, definition, record, token code, token map, and token type in the dictionary, giving the time and date of its creation, the time and date of its last modification, and its product version number. R2 DEFINITION STRUCTURE Lists every component group and field in every definition in the dictionary.
Dictionary Reports Producing Dictionary Reports Table E-1. Dictionary Report Queries (page 2 of 2) Query Name Report Description R14 TOKEN CODES Lists the token type, value, and subsystem ID of each token code. R15 TOKEN MAPS Lists the value, definition, subsystem ID, and product version of each token map. R16 TOKEN TYPES Lists the value, definition, number of occurrences of the definition, and length of each token type.
Dictionary Reports Compiling the Dictionary Schema Compiling the Dictionary Schema Each DDQUERYS query begins with this statement: ?DICTIONARY $SYSTEM.DDL The statement opens the dictionary on subvolume $SYSTEM.DDL. Before you can run any query, you must create a dictionary describing the dictionary files on subvolume $SYSTEM.DDL. You can create the dictionary on any volume that does not already have a dictionary, but to conform to the Enform Plus query, you must create it on subvolume $SYSTEM.DDL.
Dictionary Reports Requesting Reports Figure E-1. Creating a Dictionary for DDSCHEMA DDSCHEMA DDQUERYS 21> DDL / IN $system.system. ddschema / DICT $system.ddl DDL Create dictionary on $SYSTEM.DDL $SYSTEM.SYSTEM DICTDDF DICTODF DICTOBL . . . DICTALT $SYSTEM.DDL VST927.vsd Requesting Reports After you have created a dictionary, you can request reports about any dictionary on any subvolume in your system.
Dictionary Reports Requesting Reports Example E-2. Requesting Selected Dictionary Reports 16> 17> 18> 19> VOLUME $data.sales ENFORM ?OUT $S.#printer ?SOURCE $system.system.ddquerys (R2, R6) Figure E-2. Running DDQUERYS to Produce Reports DDSCHEMA 21> DDL / IN $system.system. ddschema / DICT $system.ddl DDQUERYS ENFORM Run dictionary queries against dictionary on $DATA.SALES $SYSTEM.SYSTEM DICTOBL . . DICTALT $SYSTEM.DDL DICTDDF DICTODF DICTOBL R1 R2 . . . R16 . . . DICTALT $SYSTEM.
Dictionary Reports Requesting Reports The queries in DDQUERYS use the dictionary files on $DATA.SALES, because the dictionary file names stored in the dictionary on $SYSTEM.DDL do not specify a volume or a subvolume. When the Enform Plus program reads $SYSTEM.DDL, it uses the current default volume and subvolume to qualify the dictionary file names.
F Syntax Summary Topics in this appendix: • • • • • • • • • • • • • • RUN DDL Command on page F-2 CONSTANT Statement on page F-2 DEFINITION Statement on page F-2 DELETE Statement on page F-5 EXIT Statement on page F-5 OUTPUT Statement on page F-6 OUTPUT UPDATE Statement on page F-6 RECORD Statement on page F-6 SHOW USE OF Statement on page F-8 TOKEN-CODE Statement on page F-9 TOKEN-MAP Statement on page F-9 TOKEN-TYPE Statement on page F-10 DEFINITION and RECORD Statement Clauses on page F-10 Commands o
Syntax Summary RUN DDL Command RUN DDL Command [RUN] DDL [ / run-option [ , run-option ] .../ ] [ compiler-command [ , compiler-command ] ... CONSTANT Statement CONSTANT constant-name { num-value-clause [ TYPE type ] } { [ TYPE type ] num-value-clause } { value-clause }. num-value-clause VALUE [ IS ] { { constant-number } [ LN-clause ]...
Syntax Summary Field Definition Field Definition DEF[INITION] def-name { PICTURE-clause | TYPE-clause } [ AS-clause ] [ BEGIN ] [ DISPLAY-clause ] [ EDIT-PIC-clause ] [ EXTERNAL-clause ] [ HEADING-clause ] [ HELP-clause ] [ JUSTIFIED-clause ] [ MUST-BE-clause ] [ NULL-clause ] [ SPI-NULL-clause ] [ SQLNULLABLE-clause ] [ TACL-clause ] [ UPSHIFT-clause ] [ USAGE-clause ] [ VALUE-clause ] . [ 88-condition-name-clause . ] ... [ 89-enumeration-clause . ] ... [ END [ .
Syntax Summary Group Definition Group Definition DEF[INITION] def-name [ DISPLAY-clause ] [ EXTERNAL-clause ] [ HEADING-clause ] [ HELP-clause ] [ NULL-clause ] [ SQLNULLABLE-clause ] [ USAGE-clause ] [ VALUE-clause ] . line-item specification ... [ 66-RENAMES-clause . ] ... END [ .
Syntax Summary Reference Definition Reference Definition DEF[INITION] def-name-1 TYPE def-name-2 [ AS-clause ] [ BEGIN ] [ DISPLAY-clause ] [ EDIT-PIC-clause ] [ EXTERNAL-clause ] [ HEADING-clause ] [ HELP-clause ] [ MUST-BE-clause ] [ NULL-clause ] [ SPI-NULL-clause ] [ TACL-clause ] [ UPSHIFT-clause ] [ USAGE-clause ] [ VALUE-clause ] . [ 88-condition-name-clause . ] ... [ END [ . ] ] DELETE Statement { { DELETE { { { DEF[INITION] def-name ... RECORD record-name ... TOKEN-CODE token-name ...
Syntax Summary OUTPUT Statement OUTPUT Statement OUTPUT { { { { { { { { { { { { { { { { { { { CONSTANT { constant-name ... } } { * } } } DEF[INITION] { def-name ... } } { * } } } RECORD { record-name ... } } { * } } } TOKEN-CODE { token-name ... } } { * } } } TOKEN-MAP { map-name ... } } { * } } } TOKEN-TYPE { type-name ... } } { * } } } * } . OUTPUT UPDATE Statement OUTPUT UPDATE { CONSTANT constant-name ... } { [ DEF[INITION] ] def-name ... } { TOKEN-TYPE type-name ... } .
Syntax Summary RECORD Statement creation-attribute { { { ( KEY-SEQUENCED RELATIVE ENTRY-SEQUENCED UNSTRUCTURED } } } } [ AUDIT ] [ AUDITCOMPRESS] [ BLOCK block-length ] [ [NO]BUFFERED ] [ BUFFERSIZE buffer-size ] [ CODE file-code ] { COMPRESS | DCOMPRESS | ICOMPRESS } [ { extent-size ] [ EXT { ] [ { ( pri-extent-size [, sec-extent-size ] ) ] [ MAXEXTENTS maximum-extents ] [ NO ODDUNSTR ] [ REFRESS ] [ SERIALWRITES ] [ VERIFYWRITES ] Data Definition Language (DDL) Reference Manual—529431-004 F-7
Syntax Summary SHOW USE OF Statement record-structure line-item specification ... [ 66 RENAMES clause . ] ...
Syntax Summary TOKEN-CODE Statement TOKEN-CODE Statement TOKEN-CODE token-name VALUE [ IS ] token-number TOKEN-TYPE [ IS ] type-name [ SSID subsystem-id ] [ HEADING label ] [ DISPLAY display-format ] TOKEN-MAP Statement TOKEN-MAP map-name VALUE [ IS ] token-number DEF [ IS ] def-name [ SSID subsystem-id ] [ HEADING label ] { { { { { { { { { { { { VERSION { number } } { { "Lnn " } } { { constant-name } } { } { NONVERSION } FOR { field-name [ { THROUGH { [ { THRU { { group-name [ { THROUGH { [ { THRU } f
Syntax Summary TOKEN-TYPE Statement TOKEN-TYPE Statement TOKEN-TYPE type-name VALUE [ IS ] token-data-type { DEF [ IS ] def-name [ OCCURS number TIMES ] { { OCCURS { VARYING [ DEF [ IS ] def-name ] } { { 0 TIMES } } } } } DEFINITION and RECORD Statement Clauses • • • • • • • • • • • • • • • • • • • • • • AS Clause on page F-11 DISPLAY Clause on page F-11 EDIT-PIC Clause on page F-11 EXTERNAL Clause on page F-11 FILLER Clause on page F-11 HEADING Clause on page F-11 HELP Clause on page F-11 JUSTIFIED Cl
Syntax Summary • • • • AS Clause VALUE Clause on page F-15 66 RENAMES Clause on page F-15 88 Condition-Name Clause on page F-16 89 Enumeration Clause on page F-16 AS Clause AS display-string [ LN-clause ]... DISPLAY Clause DISPLAY display-format EDIT-PIC Clause EDIT-PIC edit-picture-string EXTERNAL Clause EXTERNAL FILLER Clause FILLER HEADING Clause HEADING report-heading [ LN-clause ]... HELP Clause HELP help-text [ [,] help-text ]...
Syntax Summary KEYTAG Clause KEYTAG Clause KEYTAG key-specifier [ DUPLICATES [NOT] ALLOWED ] LN Clause { LN"language-code[_territory-code][.
Syntax Summary PICTURE Clause PICTURE Clause PIC[TURE] { "{picture-string { {national-picture-string { { {picture-string { {national-picture-string }" } } } } } } } } picture-string { alphanumeric-string | numeric-string } alphanumeric-string { A | X | 9 }...[(length)] numeric-string { { { { [S]9...[(length)[V[9...[(length)]]]] T[9...[(length)[V[9...[(length)]]]]] 9...[(length)[V[9...[(length)]]]]S 9...[(length)[V[9...
Syntax Summary TACL Clause TACL Clause TACL type type { { { { { { { { { { { CRTPID DEVICE ENUM FNAME FNAME32 PHANDLE SSID SUBVOL TRANSID TSTAMP USERNAME } } } } } } } } } } } TYPE Clause TYPE { data-type | def-name | * } data type { { { { { { { { { { { { { { { { { { { { { CHARACTER length BINARY { { { { 8 } [ 16 [ , scale ] ] } 32 [ , scale ] } 64 [ , scale ] } FLOAT { [ 32 ] } { 64 } COMPLEX LOGICAL { 1 } { [ 2 ] } { 4 } ENUM SQL-data-type BIT bit-length [ UNSIGNED ] [ } } [ UNSIGNED ] } } } } }
Syntax Summary USAGE Clause USAGE Clause [ USAGE [ IS ] ] { { { ( COMP[UTATIONAL] INDEX COMP[UTATIONAL]-3 PACKED-DECIMAL } } } } VALUE Clause { VALUE [ IS ] value } { NOVALUE } value { { { { { { { { { { { { { { "character-string" constant-name national-literal number } [ LN clause ]...
Syntax Summary 88 Condition-Name Clause 88 Condition-Name Clause 88 condition-name { VALUE [ IS ] } { VALUES [ ARE ] } { value } { } { value { THROUGH } value } { { THRU } } [, value ] [ ] [, value { THROUGH } value ] [ { THRU } ] ...
Syntax Summary Commands [NO]CDEFINEUPPER Default: CDEFINEUPPER ?CFIELDALIGN_MATCHED2 { CIFNDEF } identifier_name { CIFDEF } CENDIF [NO]CLISTIN Default: CLISTIN { [NO]CLISTOUT | CLISTOUTDETAIL } Default: CLISTOUT [NO]COBCHECK Default: COBCHECK if a COBOL source code file is open, otherwise NOCOBCHECK COBLEVEL [ base [ , increment ] ] Default: base =1, increment = 1 { COBOL [ cobol-source-file [ ! ] ] } { NOCOBOL } Default: NOCOBOL COLUMNS num Default: num = 132 Data Definition Language (DDL) Reference M
Syntax Summary Commands [NO]COMMENTS Default: NOCOMMENTS [NO]CPRAGMA Default: CPRAGMA [NO]CTOKENMAP_ASDEFINE Default: NOCTOKENMAP_ASDEFINE CUNDEF identifier_name [NO]C_DECIMAL Default: NOC_DECIMAL [NO]C_MATCH_HISTORIC_TAL Default: NOC_MATCH_HISTORIC_TAL { DDL [ ddl-source-file [ ! ] ] } { NODDL } Default: NODDL [NO]DEFLIST Default: NODEFLIST { DICT [ dict-subvol-name ] [ ! ] } { NODICT } Default: NODICT DICTN [ dict-subvol-name ] [ ! ] Data Definition Language (DDL) Reference Manual—529431-004 F-18
Syntax Summary Commands DICTR [ dict-subvol-name ] { DO_PTAL_ON | DO_PTAL_OFF } Default: DO_PTAL_ON EDIT [ edit-file-name [ ; edit-parameter ] ...
Syntax Summary Commands { FUP [ fup-source-file [ ! ] } { NOFUP } Default: NOFUP HELP [ command ] Default: all DDL commands LINECOUNT number Default: LINECOUNT 56 [NO]LIST Default: LIST { NCLCONSTANT [ NCL-source-file [ ! ] ] } { NONCLCONSTANT } Default: NONCLCONSTANT { NEWFUP_FILEFORMAT | OLDFUP_FILEFORMAT | NOFILEFORMAT } Default: NOFILEFORMAT OUT [ listing-destination ] Default: destination specified in the OUT run option of the RUN DDL Command on page F-2 [NO]OUTPUT_SENSITIVE Default: NOOUTPUT_SENSITI
Syntax Summary Commands { PASCAL [ pascal-source-file { ! ] ] } { NOPASCAL } Default: NOPASCAL (D-series systems only) PASCALBOUND { 0 | 1 } Default: PASCALBOUND 1 (D-series systems only) [NO]PASCALCHECK Default: PASCALCHECK if a Pascal source code file is open, otherwise NOPASCALCHECK (D-series systems only) [NO]PASCALNAMEDVARIANT Default: NOPASCALNAMEDVARIANT (D-series systems only) { REPORT [ report-destination [ ! ] ] } { NOREPORT } Default: NOREPORT RESET [NO]SAVE Default: SAVE SECTION section-name
Syntax Summary Commands SOURCE source-name [ ( section-name [ , section-name ] ...
Syntax Summary Commands TEDIT [ edit-file-name [ ; edit-parameter ] ...
G Pathmaker and DDL The Pathmaker product is a NonStop Transaction Services/MP (NonStop TS/MP) application systems generator. When you start a Pathmaker project, the Pathmaker program installs a dictionary for you as part of the application catalog, which is an integrated system directory for the Pathmaker project.
Pathmaker and DDL Table G-1. DDL Features That Differ in the Pathmaker Environment (page 2 of 2) DDL Feature Pathmaker Action Manual Reference DDL Command The Pathmaker product cannot use DDL source code created by the DDL command to rebuild a Pathmaker dictionary; the DDL source code does not contain essential Pathmaker application design information.
H DDL Alignment Rules for C This section provides information about alignment rules used by the DDL compiler when generating C code.
DDL Alignment Rules for C C00CALIGN Alignment Rules C00CALIGN Alignment Rules These are the default alignment rules. C00 and later versions of the C compiler follow these rules: • • All structures and nested substructures begin and end on an even byte boundary. When a CHAR or CHAR ARRAY item directly follows another CHAR or CHAR ARRAY item, no filler exists between them (see Example H-1 on page H-2).
DDL Alignment Rules for C NOC00CALIGN Alignment Rules NOC00CALIGN Alignment Rules Versions of the C compiler earlier than C00 follow these rules: • If a substructure contains any word-aligned data (any data except for a CHAR or CHAR array), then C aligns the substructure on word boundaries and uses an even length (adding filler before and after the structure as needed).
DDL Alignment Rules for C FIELDALIGN_SHARED8 Alignment Rules FIELDALIGN_SHARED8 Alignment Rules When you specify the FIELDALIGN_SHARED8 command, DDL uses the following alignment rules: • The offset of each field (other than bit fields) in the structure from the base of the structure must begin at an address that is an integral multiple of the width of the field. • The offset of a substructure field must be an integral multiple of the widest field in the substructure.
Glossary alphabetic character. Any uppercase or lowercase letter or a space. alphanumeric character. Any ASCII character. alternate record key. A field other than the primary record key whose value identifies a record in a structured file. command interpreter. A process that manages interactive communication between you and the operating system. In this manual, command interpreter refers to a TACL process. compilation. The process of translating a source file to an object file.
Glossary definition definition. A dictionary object that describes a data structure, including the name, data type, size, and other attributes of a field (elementary item) or of a named group of fields. ENABLE™. A product that is part of the ENCOMPASS Distributed Database Management System. ENABLE allows you to build simple applications that execute within a PATHWAY system. Enform Plus. A language and a report generator used to retrieve information from databases.
Glossary SPI SPI. See Subsystem Programmatic Interface (SPI). SPI token. The smallest accessible unit in an SPI message; each token has a value and a code that identifies the value. See also simple token and extensible structured token. SPI token code. The identifying code of a simple token. SPI token map. The identifying code of an extensible structured token. SPI token type. The data type and size of one or more tokens. Subsystem Programmatic Interface (SPI).
Index Numbers 66 RENAMES clause description of 6-79/6-80 HELP clause and 6-10 in DEFINITION statement group definition 5-4 position of 5-2 in RECORD statement 5-14 88 condition-name clause description of 6-81/6-83 HELP clause and 6-10 in DEFINITION statement field definition 5-3 position of 5-2 reference definition 5-6 in line-item specification 5-24 SQLNULLABLE clause and 6-41 89 enumeration clause description of 6-84/6-89 in DEFINITION statement field definition 5-3 position of 5-2 in line-item specificat
Index C BINARY data type description of 6-49 in TYPE clause 6-48 MUST BE clause and 6-17 octal form and 6-52 translation of to C 6-52 to COBOL 6-52 to Pascal 6-52 to pTAL 6-53 to TACL 6-52 to TAL 6-53 BIT data type See also Bit maps description of 6-50 SQLNULLABLE clause and 6-41 syntax of 6-48 translation of 6-54/6-66 Bit maps for C source code 6-56/6-58 for COBOL source code 6-58/6-59 for FORTRAN source code 6-60/6-61 for Pascal source code 6-61/6-63 for pTAL source code 6-65/6-66 for TACL source code 6
Index C Clauses list of 6-1/6-2 order of in DEFINTION statement 5-2 in line-item specification 5-24 CLISTIN command 9-20/9-21 CLISTOUT command 9-21/9-22 COBCHECK command 9-23/9-24 COBLEVEL command 9-25 COBOL command 9-26/9-28 COBOL keys 5-17 COBOL source code BINARY data type and 6-52 bit maps for 6-58/6-59 COMPUTATIONAL usage and 6-72 CONSTANT statement and 4-6 ENUM data type and 6-53 generating 9-26/9-28 nested OCCURS clauses and 6-21 output commands for 9-3 OUTPUT statement and 8-6 PICTURE clause and 6
Index D C_MATCH_HISTORIC_TAL command alignment rules for H-3 description of 9-40/9-42 D Danish locale name 6-14 Data objects 1-1 Data translation C-1/C-12 Databases See also Dictionary database creating 1-7/1-8 sample schema for B-1/B-6 DCOMPRESS file attribute 5-13 DDL command for schema file 9-42/9-45 to run DDL compiler (RUN DDL command) 3-1/3-3 DDL commands See Commands DDL compiler commands to See Commands comments generated by in compiler listing 2-15 in dictionary 2-14 completion codes for 3-5 des
Index E Dictionaries (continued) recreating schemas from 10-1/10-2 uses of 1-1 Dictionary commands 9-2 Dictionary comments 2-13/2-14 Dictionary database components of D-1/D-3 definition and record storage in D-63/D-68 files in D-3/D-63 structure of D-1/D-68 text items in D-2/D-3 Dictionary Definition File description of D-6/D-8 storage of D-64 Dictionary files D-3/D-63 Dictionary reports E-1/E-7 DICTKDF file description of D-8/D-12 storage of D-67 DICTMAP file D-13/D-14 DICTN command 9-49/9-51 DICTOBL fil
Index F Enform Plus (continued) DISPLAY clause and 6-4 HEADING clause and 6-9 NULL-VALUE field and D-12 reserved words 2-3 English locale names 6-14 Enscribe files NULL clause and 6-19 types of 5-11 ENTRY-SEQUENCED file attribute 5-11 Entry-sequenced files by default 5-10 explicitly defined 5-11 ENUM data type description of 6-50 in TYPE clause 6-48 translation of to C 6-53 to COBOL 6-53 to FORTRAN 6-53 to Pascal 6-53 to pTAL 6-54 to TACL 6-53 to TAL 6-54 Enumeration clause See 89 enumeration clause Error
Index G File Utility Program (FUP) (continued) source code (continued) suppressing 9-67 TEMPORARY file attribute and 5-9 UPDATE clause and 5-17 Files assigned 5-9 audited 5-11 creating 5-9/5-10 dictionary D-3/D-63 Enscribe 5-11 entry-sequenced by default 5-10 explicitly defined 5-11 key-sequenced by default 5-10 compressing 5-13 explicitly defined 5-11 relative by default 5-10 explicitly defined 5-11 temporary 5-9 unstructured by default 5-10 explicitly defined 5-11 FILLER clause description of 6-7/6-8 EX
Index I HEADING clause (continued) in line-item specification 5-24 in TOKEN-CODE statement 7-9 in TOKEN-MAP statement 7-14 HELP clause description of 6-10/6-11 in DEFINITION statement field definition 5-3 group definition 5-4 reference definition 5-6 in line-item specification 5-24 HELP command 9-70 HIGH-NUMBER symbolic literal 6-17 HIGH-VALUE(S) figurative constant 6-17 HP C for NonStop Systems See C HP COBOL for NonStop Systems See COBOL HP FORTRAN for NonStop Systems See FORTRAN HP Pascal for NonStop S
Index L L M Level numbers generally 5-23/5-24 01 (implicit) 5-23 66 (RENAMES clause) 6-79 88 (condition-name clause) 6-81 89 (enumeration clause) 6-84 in line-item specification 5-24 LINECOUNT command 9-70/9-71 Line-item specification in DEFINITION statement 5-4 in RECORD statement 5-14 syntax of 5-24 LIST command 9-71/9-72 Listing commands 9-6 Literals national See National literals SQL See SQL literals symbolic See Symbolic literals LN clause description of 6-13/6-15 in 88 condition-name clause 6-81 i
Index O Nesting CIFNDEF and CIFDEF commands 9-18/9-19 group definitions 5-4 OCCURS clauses with COBCHECK command 9-24 without COBCHECK command 6-21 schema files 9-100 Nesting levels 8-12/8-13 Network Control Language See NCL Network file names 2-4 NEWFUP_FILEFORMAT command 9-75/9-77 NO ODDUNSTR file attribute 5-14 NOFILEFORMAT command 9-77/9-79 NOname command See name command Nonaudited dictionaries creating with DICT command 9-47 with DICTN command 9-49 moving to another subvolume 10-15 rebuilding 10-20/
Index P OUTPUT UPDATE statement 8-7/8-10 OUTPUT_SENSITIVE command 9-83/9-85 P PAGE command 9-86 PASCAL command 9-86/9-89 Pascal source code 66 RENAMES clause and 6-79 88 condition-name clause and 6-81 89 enumeration clause and 6-85 BINARY data type and 6-52 bit maps for 6-61/6-63 COMPUTATIONAL usage and 6-72 CONSTANT statement and 4-6 ENUM data type and 6-53 generating 9-86/9-89 LOGICAL data type and 6-54 output commands for 9-4 OUTPUT statement and 8-6 PICTURE clause and 6-30 REDEFINES clause and 6-34/6
Index Q pTAL source code (continued) PICTURE clause and 6-30/6-31 REDEFINES clause and 6-35 SQLNULLABLE clause and 6-43 suppressing 9-105 VALUE clause and 6-75 Punctuation in commands 2-18 in statements 2-16 Q Qualified names 2-2 Quotation marks within strings 2-5 QUOTE(S) figurative constant 6-17 R Record Definition File description of D-47/D-55 storage of D-66/D-67 RECORD statement 5-7/5-17 Records See RECORD statement REDEFINES clause bit maps and 6-55 description of 6-31/6-36 in line-item specificat
Index T SPACING command 9-101 Spanish locale name 6-14 Special characters 2-12 SPI constants 4-9 SPI schema sample B-6/B-11 SPI tokens 1-1, 7-1 SPI variable names 2-3 SPI-NULL clause description of 6-37/6-39 in DEFINITION statement field definition 5-3 reference definition 5-6 in line-item specification 5-24 SQL data types in TYPE clause 6-48, 6-50 SQL literals in 88 condition-name clause 6-81, 6-82 in VALUE clause 6-75, 6-76, 6-79 SQLNULLABLE clause description of 6-39/6-44 in DEFINITION statement field
Index U TAL command 9-105/9-107 TAL source code 88 condition-name clause and 6-81 89 enumeration clause and 6-85 BINARY data type and 6-53 bit maps for 6-65/6-66 COMPUTATIONAL usage and 6-72 CONSTANT statement and 4-8 ENUM data type and 6-54 generating 9-105/9-107 OCCURS clause and 6-21 OCCURS DEPENDING ON clause and 6-24 output commands for 9-4 OUTPUT statement and 8-6 PICTURE clause and 6-30/6-31 REDEFINES clause and 6-35 SQLNULLABLE clause and 6-43 subscript bounds in 6-21 suppressing 9-105 TOKEN-CODE
Index V UPSHIFT clause description of 6-69 in DEFINITION statement field definition 5-3 reference definition 5-6 MUST BE clause and 6-17 REDEFINES clause and 6-31 VALUE clause and 6-77 USA locale name 6-14 USAGE clause description of 6-70/6-74 in DEFINITION statement field definition 5-3 group definition 5-4 reference definition 5-6 in line-item specification 5-24 User-defined comments in compiler listing 2-15 in dictionary 2-13/2-14 W WARN command 9-116 WARNINGS command 9-116/9-117 Z ZERO((E)S) figurat