CONTENTS Title Page Copyright Page Preface Technical Changes and New Features 1 Introduction to the VAX DATATRIEVE Language 1.1 Commands and Statements 1.2 Command and Statement Elements 1.3 The DATATRIEVE Character Set 1.4 Keywords 1.5 Names 1.6 DATATRIEVE Procedures 1.7 Command Files and DATATRIEVE 1.8 Starting and Ending a DATATRIEVE Session 1.9 DATATRIEVE Prompts 1.9.1 Input Line Prompts 1.9.2 Syntax Prompts 1.9.3 Prompts for Storing and Modifying Values 1.10 Termination and Continuation Characters 1.10.1 The Semicolon 1.10.2 The RETURN Key 1.10.3 The Hyphen 1.11 Comments 2 Access Control Lists and DATATRIEVE Protection 2.1 Access Control Lists 2.1.1 An Overview of ACL Entries 2.1.2 Displaying an Access Control List 2.1.3 Hierarchical Protection in the DMU Dictionary 2.1.3.1 Accumulation of Privileges in the DMU Dictionary 2.1.3.2 Combinations of DMU ACL Entries 2.1.4 Protection in the CDO Dictionary 2.1.5 Summary of ACL Results 2.2 The Parts of an ACL Entry 2.2.1 User Identification Criteria 2.2.1.1 Identifying Users by User name 2.2.1.2 Identifying Users by the UIC 2.2.1.3 Identifying Users by Rights Identifiers 2.2.1.4 Identifying Users by the Password 2.2.1.5 Identifying Users by the Terminal Number or Job Class 2.2.2 DATATRIEVE and CDD/Plus Privilege Specification 2.2.2.1 Access Privilege Requirements 2.2.2.2 Default Access Control Lists 2.3 Creating ACL Entries 2.3.1 Suggestions for Assigning Privileges 2.3.2 Syntax of the DEFINEP Command 2.3.2.1 Using a Path Name in the DEFINEP Command 2.3.2.2 Sequence Number in the DEFINEP Command 2.4 Removing Entries from an ACL 3 Value Expressions and Boolean Expressions 3.1 Value Expressions 3.1.1 Literals 3.1.1.1 Character String Literals 3.1.1.2 Numeric Literals 3.1.2 Qualified Field Names 3.1.2.1 Elementary and REDEFINES Field Names 3.1.2.2 COMPUTED BY Fields 3.1.2.3 Group Field Names 3.1.2.4 Query Names 3.1.2.5 Qualifying Field Names 3.1.3 Variables 3.1.3.1 Global Variables 3.1.3.2 Local Variables 3.1.4 Date Value Expressions 3.1.5 Prompting Value Expressions 3.1.6 Values from a Table 3.1.7 Statistical Expressions 3.1.8 Arithmetic Expressions 3.1.9 Concatenated Expressions 3.1.10 Conditional Value Expressions 3.1.10.1 CHOICE Value Expression 3.1.10.2 IF-THEN-ELSE Value Expression 3.1.11 FORMAT Value Expression 3.1.12 FROM Value Expression 3.2 Boolean Expressions 3.2.1 Relational Operators 3.2.2 Boolean Operators 4 DATATRIEVE Functions 4.1 Functions Grouped by Type 4.1.1 Function Value Expressions 4.1.1.1 Functions Using Numeric Data 4.1.1.2 Trigonometric Functions 4.1.1.3 Functions Using Alphanumeric Data 4.1.1.4 Functions Using Dates 4.1.2 Functions for Keypad Definitions 4.1.3 Functions Relating to Processes 4.1.3.1 Functions for Timing Processes 4.1.3.2 Functions for Using Logical Names 4.1.3.3 Function for Using Symbols 4.1.3.4 Other Functions Relating to Processes 4.2 Functions Listed Alphabetically FN$ABS Function FN$ATAN Function FN$COMMAND_KEYBOARD Function FN$COS Function FN$CREATE_LOG Function FN$DATE Function FN$DAY Function FN$DCL Function FN$DEFINE_KEY Function FN$DELETE_KEY Function FN$DELETE_LOG Function FN$EXP Function FN$FLOOR Function FN$GET_SYMBOL Function FN$HEX Function FN$HOUR Function FN$HUNDREDTH Function FN$INIT_TIMER Function FN$JULIAN Function FN$KEYPAD_MODE Function FN$KEYTABLE_ID Function FN$LN Function FN$LOAD_KEYDEFS Function FN$LOG10 Function FN$MINUTE Function FN$MOD Function FN$MONTH Function FN$NINT Function FN$OPENS_LEFT Function FN$PROMPT_KEYBOARD Function FN$SECOND Function FN$SHOW_KEY Function FN$SHOW_KEYDEFS Function FN$SHOW_TIMER Function FN$SIGN Function FN$SIN Function FN$SPAWN Function FN$SQRT Function FN$STR_EXTRACT Function FN$STR_LOC Function FN$TAN Function FN$TIME Function FN$TRANS_LOG Function FN$UPCASE Function FN$WEEK Function FN$WIDTH Function FN$YEAR Function 4.3 Optimizing Function Execution 5 Record Selection Expressions 5.1 The RSE Format 5.2 Specifying the Source of Records 5.2.1 Domains as Sources of Record Streams 5.2.2 Collections as Sources of Record Streams 5.2.3 Lists as Sources of Record Streams 5.2.4 Using Relations and VAX DBMS Records as Sources of Record Streams 5.3 Optional Elements of the RSE 5.3.1 Restricting the Number of Records in a Record Stream 5.3.2 Naming a Record Stream 5.3.3 Specifying Conditions for the Record Stream 5.3.4 Retaining Only Unique Field Values 5.3.5 Sorting the Records 5.3.6 The CROSS Clause and Relational Joins 5.3.6.1 Crossing a Domain with Itself 5.3.6.2 Crossing Two Domains 5.3.6.3 Crossing More Than Two Domains 5.4 Optional RSE Clauses for VAX DBMS Records 5.4.0.1 MEMBER Clause 5.4.0.2 OWNER Clause 5.4.0.3 WITHIN Clause 6 Record Definitions 6.1 Parts of a Record Definition 6.2 Elementary and Group Fields 6.3 Field Levels and Level Numbers 6.3.1 Field Levels 6.3.2 Level Numbers 6.4 Field Names 6.5 Field Classes 6.6 Field Definition Clauses 6.6.1 Guide for Using Field Definition Clauses 6.7 Defining Data with DATATRIEVE and CDD/Plus 7 DATATRIEVE Commands, Statements, and Definition Clauses 7.1 Summary of Commands 7.2 Summary of Commands and Statements by Function 7.3 Structure of DATATRIEVE Command Descriptions : (EXECUTE) @ (Invoke Command File) Command ABORT Statement ADT Command ALLOCATION Clause Assignment Statements 7.3.1 Assigning a Value to an Elementary Field 7.3.2 Assigning a Value to a Group Field 7.3.3 Assigning a Value to a Variable AT BOTTOM Statement (Report Writer) AT TOP Statement (Report Writer) BEGIN-END Statement 7.4 CDO Command CHOICE Statement CLOSE Command COMMIT Statement COMPUTED BY Clause CONNECT Statement DECLARE Statement DECLARE PORT Statement DECLARE SYNONYM Command DEFAULT VALUE Clause DEFINE DATABASE Command DEFINE DICTIONARY Command DEFINE DOMAIN Command 7.4.1 Defining a CDD$DATABASE Domain 7.4.2 Defining a VAX DBMS Domain 7.4.3 Defining a Network Domain 7.4.4 Defining a Relational Domain 7.4.5 Defining an RMS Domain 7.4.6 Defining a View Domain DEFINE FILE Command DEFINE PORT Command DEFINE PROCEDURE Command DEFINE RECORD Command DEFINE TABLE Command 7.4.7 Dictionary Tables 7.4.8 Domain Tables DEFINEP Command DELETE Command DELETEP Command DISCONNECT Statement DISPLAY Statement DISPLAY_FORM Statement DROP Statement EDIT Command EDIT_STRING Clause 7.4.9 Alphanumeric Fields 7.4.10 Numeric Fields 7.4.10.1 Replacement Characters 7.4.10.2 Insertion Characters 7.4.10.3 Floating Characters 7.4.10.4 Changing the Defaults for Currency Symbols 7.4.11 Date Fields END_REPORT Statement (Report Writer) ERASE Statement EXIT Command EXTRACT Command FIND Statement FINISH Command FOR Statement HELP Command IF-THEN-ELSE Statement LIST Statement MATCH Statement MISSING VALUE Clause MODIFY Statement OCCURS Clause 7.4.12 Fixed Number of Occurrences 7.4.13 Variable Number of Occurrences ON Statement OPEN Command PICTURE Clause 7.4.14 Alphabetic Fields 7.4.15 Alphanumeric Fields 7.4.16 Numeric Fields PLOT Statement PRINT Statement PRINT Statement (Report Writer) PURGE Command QUERY_HEADER Clause QUERY_NAME Clause READY Command RECONNECT Statement REDEFINE Command REDEFINES Clause REDUCE Statement RELEASE Command RELEASE SYNONYM Command REPEAT Statement REPORT Statement Restructure Statement ROLLBACK Statement SCALE Clause SELECT Statement SET Command SET Statement (Report Writer) SHOW Command SHOWP Command SIGN Clause SORT Statement STORE Statement STORE Statement (for VAX DBMS and Relational Sources) SUM Statement SYNCHRONIZED Clause THEN Statement USAGE Clause 7.4.17 COMP-1 (or REAL) Fields 7.4.18 COMP-2 (or DOUBLE) Fields 7.4.19 G_FLOATING Fields 7.4.20 H_FLOATING Fields 7.4.21 COMP-3 Fields 7.4.22 COMP-5 (or ZONED) Fields 7.4.23 DATE Fields VALID IF Clause WHILE Statement A VAX DATATRIEVE Keywords A.1 DATATRIEVE Keywords A.2 DATATRIEVE Functions B DATATRIEVE Sort Order C VAX DATATRIEVE Error Messages C.1 Common Error Messages C.2 Error Messages from Other Software Facilities C.3 DATATRIEVE Syntax Prompts C.4 Severe Error Messages C.5 Reporting Severe Errors C.6 Making a Trace File C.7 Copying Definitions C.8 Error Submission FIGURES 2-1 DMU Privileges Passed from Higher Directories 2-2 DMU Privilege Inheritance in a Four-Level Hierarchy 5-1 Joining Records from Two Domains 6-1 Level Numbers in the YACHT Record Definition 7-1 Control Group Report Based on One Sort Key 7-2 Control Group Report Based on One Sort Key TABLES 1-1 The DATATRIEVE Character Set 2-1 Access Privileges for DMU Format Dictionaries 2-2 Access Privileges for CDO Format Dictionaries 2-3 DMU/CDO ACL Privilege Equivalents 2-4 Access Privilege Requirements 2-5 Default Access Control Lists for DMU Format Dictionaries 2-6 Default Access Control Lists for CDO Format Dictionaries 3-1 Character String Literals and Their Values 3-2 Values Derived with Statistical Functions 3-3 Arithmetic Operators 3-4 Relational Operators 3-5 Compound Boolean Expressions 6-1 Field Classes 6-2 Summary of Field Definition Clauses 6-3 CDD/Plus and DATATRIEVE Data Types 7-1 Summary of Commands, Statements, and Clauses 7-2 Summary of Commands and Statements by Function 7-3 AT BOTTOM Statement Summary Elements 7-4 AT TOP Statement Header and Summary Elements 7-5 Output File Specification Defaults 7-6 Allowed Combinations of Key Field Attributes 7-7 Output File Specification Defaults 7-8 Default Journal File Types 7-9 Edit String Characters 7-10 EDIT_STRING Output for Two Field Values 7-11 Replacement Characters in Numeric Fields 7-12 Sign Insertion Characters 7-13 Decimal Point Insertion 7-14 Special Insertion Characters 7-15 Floating Characters in Edit Strings 7-16 EDIT_STRING Output for Date Values 7-17 Output File Specification Defaults 7-18 Output File Specification Defaults 7-19 Modifying Selected Records 7-20 Modifying All Records in the CURRENT Collection 7-21 Modifying All Records in a Record Stream 7-22 Modifying Records in a Record Stream Formed by a FOR Loop 7-23 Output File Specification Defaults 7-24 Picture-String Characters 7-25 Output File Specification Defaults 7-26 Print List Elements 7-27 Report Parameters Controlled by Print List Elements 7-28 Report Parameters Affected by Print List Modifiers 7-29 Access Options 7-30 Access Modes 7-31 Multi-User Access to RMS Domains 7-32 Multi-User Access to VAX DBMS, Rdb/VMS, and Rdb/ELN Sources 7-33 Access Modes Required by DATATRIEVE Statements 7-34 DATATRIEVE Default Access Modes 7-35 Output File Specification Defaults 7-36 Report Writer SET Statement Options 7-37 Output File Specification Defaults 7-38 COMP Storage Allocation Types B-1 DATATRIEVE Sort Order