| | Contents
|
|
Chapter 1: |
|
| |
|
|
Chapter 2: |
|
| |
2.1 Case Sensitivity
2.1.1 Identifiers
2.1.2 Keyword Names
2.1.3 Class Names
2.1.4 Namespace Names
2.2 White Space
2.3 Comments
2.3.1 Single-Line Comments
2.3.2 Multiple-Line Comments
2.3.3 Retaining Comment Text in Object Routines
2.4 Literals
2.4.1 String Literals
2.4.2 Numeric Literals
2.5 Identifiers
2.5.1 Punctuation Characters within Identifiers
2.6 Labels
2.7 Reserved Words
|
|
Chapter 3: |
|
| |
3.1 Strings
3.1.1 Escaping Quotation Marks
3.1.2 Concatenating Strings
3.2 Numbers
3.3 Objects
3.4 Persistent Multi-dimensional Arrays (Globals)
3.5 Undefined Values
3.6 Boolean Values
3.7 Dates
|
|
Chapter 4: |
|
| |
4.1 Categories of Variables
4.1.1 Local Variables
4.1.2 Process-private Globals
4.1.3 Globals
4.1.4 Array Variables
4.1.5 Special Variables
4.1.6 Object Properties
4.2 Variable Typing and Conversion
4.2.1 Object Values
4.3 Variable Declaration and Scope
|
|
Chapter 5: |
|
| |
5.1 Introduction to Operators and Expressions
5.1.1 Operator Precedence
5.1.2 Expressions
5.1.3 Assignment
5.2 Arithmetic Operators
5.2.1 Unary Positive Operator (+)
5.2.2 Unary Negative Operator (-)
5.2.3 Addition Operator (+)
5.2.4 Subtraction Operator (-)
5.2.5 Multiplication Operator (*)
5.2.6 Division Operator (/)
5.2.7 Exponentiation Operator (**)
5.2.8 Integer Divide Operator ( \ )
5.2.9 Modulo Operator (#)
5.3 Logical Comparison Operators
5.3.1 Unary Not
5.3.2 Precedence and Logical Operators
5.3.3 Binary And
5.3.4 Binary Or
5.4 String Operators
5.4.1 Binary Concatenate
5.5 Numeric Relational Operators
5.5.1 Binary Less Than
5.5.2 Binary Greater Than
5.5.3 Greater Than or Equal To
5.5.4 Less Than or Equal To
5.6 String Relational Operators
5.6.1 Binary Equals
5.6.2 Binary Contains
5.6.3 Binary Follows
5.6.4 Binary Sorts After
5.7 Pattern Matching
5.7.1 Specifying How Many Times a Pattern Can Occur
5.7.2 Specifying Multiple Patterns
5.7.3 Specifying a Combination Pattern
5.7.4 Specifying an Indefinite Pattern
5.7.5 Specifying an Alternating Pattern (Logical OR)
5.7.6 Using Incomplete Patterns
5.7.7 Multiple Pattern Interpretations
5.7.8 Not Match Operator
5.8 Indirection
5.8.1 Name Indirection
5.8.2 Pattern Indirection
5.8.3 Argument Indirection
5.8.4 Subscript Indirection
5.8.5 $TEXT Argument Indirection
|
|
Chapter 6: |
|
| |
6.1 Command Arguments
6.1.1 Multiple Arguments
6.1.2 Argumentless Commands
6.2 Command Postconditional Expressions
6.2.1 Postconditional Syntax
6.2.2 Evaluation of Postconditionals
6.3 Invoking Code
6.3.1 Do
6.3.2 Quit
6.3.3 Job
6.3.4 Xecute
6.4 Assignment Commands
6.4.1 Set
6.4.2 Kill
6.4.3 New
6.5 Flow Control Commands
6.5.1 If, ElseIf, and Else
6.5.2 For
6.5.3 While and Do/While
6.6 I/O Commands
6.6.1 Write
6.6.2 Read
6.6.3 Open, Use, and Close
6.7 Other Commands
|
|
Chapter 7: |
|
| |
7.1 Function Syntax
|
|
Chapter 8: |
|
| |
8.1 Procedures, Routines, Subroutines, Functions, and Methods: What Are They?
8.1.1 Routines
8.1.2 Subroutines
8.1.3 Functions
8.2 Procedures in Detail
8.2.1 Invoking Procedures
8.2.2 Procedure Syntax
8.2.3 Procedure Variables
8.2.4 Public and Private Procedures
8.2.5 Procedure Parameters
8.2.6 Procedure Code
8.2.7 Indirection, Xecute Commands, and the Job Commands within Procedures
8.2.8 Error Traps within Procedures
8.3 Legacy User-Defined Code
8.3.1 Subroutines
8.3.2 Functions
|
|
Chapter 9: |
|
| |
9.1 Defining Macros
9.1.1 Saving Macros
9.2 Referring to Macros in External Files
9.3 Calling Macros
9.4 Using Conditional Macros
|
|
Chapter 10: |
|
| |
10.1 What Multidimensional Arrays Are
10.1.1 Multidimensional Tree Structures
10.1.2 Sparse Multidimensional Storage
10.1.3 Settings for Multidimensional Arrays
10.2 Manipulating Multidimensional Arrays
10.3 For More Information
|
|
Chapter 11: |
|
| |
11.1 Basic String Operations and Functions
11.1.1 Advanced Features of $Extract
11.2 Delimited Strings
11.2.1 Advanced $Piece Features
11.3 List-Structure String Operations
11.3.1 Advanced List Features
11.4 Lists Versus $Piece and Strings
|
|
Chapter 12: |
|
| |
12.1 Issuing Operating System Commands from Caché
12.1.1 Issuing Operating System Commands from Caché with $ZF(-1)
12.1.2 Issuing Operating System Commands from Caché with $ZF(-2)
12.2 Calling External Applications with $ZF
12.2.1 Calling External Functions with $ZF on UNIX or Windows Platforms
12.2.2 Calling External Applications with $ZF on OpenVMS Platforms
12.2.3 $ZF Calls Support Byte Arrays
12.3 Building Callout Modules as Dynamic Shared Libraries
12.4 Referencing a User-Defined Callout Module
12.4.1 Statically Linked Callouts
12.4.2 A Single Active DLL: The $ZF(-3) Call Interface
12.4.3 Multiple Simultaneous Dynamic Link Libraries
12.4.4 Referencing a DLL by Externally-Defined Index
12.4.5 DLL Runup and Rundown Functions
12.5 Sample Caché Callout DLL Build Procedures
12.5.1 Windows
12.5.2 Linux
12.5.3 Tru64 UNIX
12.5.4 HP 32-bit
12.5.5 HP 64-bit
12.5.6 PowerPC
12.5.7 OpenVMS
12.6 Reading and Writing to Devices Opened in UNIX
12.6.1 Opening the File Descriptor
12.6.2 Closing the File Descriptor
|
|
Chapter 13: |
|
| |
13.1 Callin Function Overview
13.1.1 How the Functions Operate
13.2 About ASCII and Unicode Functionality
13.2.1 Data Types
13.3 Other Information and Requirements
13.3.1 Maximum Directory Length for Callin Applications
13.3.2 ccallin.h Contents
13.3.3 Using Callin Functions in $ZF Routines
13.3.4 Requirements for Callin Programs
13.3.5 Margins in Callin Sessions
13.4 Compiling, Linking, and Running a Callin Program
13.4.1 Files Supplied
13.4.2 Compiling, Linking, and Running on Windows
13.4.3 Compiling, Linking, and Running on UNIX
13.4.4 Compiling, Linking, and Running on OpenVMS
13.4.5 Compiling, Linking, and Running the ccallin.c Sample Program
|
|
Chapter 14: |
|
| |
14.1 Managing Transactions Within Applications
14.1.1 Transaction Commands
14.1.2 Using the Lock Command in Transactions
14.1.3 Transaction Rollback within an Application
14.1.4 Examples of Transaction Processing Within Applications
14.2 Automatic Transaction RollBack
14.2.1 Rollback During Caché Startup
14.2.2 Rollback at Halt from Caché
14.2.3 Rollback During RESJOB
14.2.4 Restore Journal Option of JOURNAL Utility
14.3 System-Wide Issues with Transaction Processing
14.3.1 Backups with Transaction Processing
14.3.2 Journaling with Transaction Processing
14.3.3 Asynchronous Error Notifications
|
|
Chapter 15: |
|
| |
15.1 How Error Processing Works
15.1.1 Internal Error-Trapping Behavior
15.1.2 Current Context Level
15.1.3 $ETRAP Error Handlers
15.1.4 Error Codes
15.2 Handling Errors with $ETRAP
15.2.1 Context-Specific $ETRAP Error Handlers
15.2.2 $ETRAP Flow of Control Options
15.3 Handling Errors with $ZTRAP
15.3.1 Setting Up $ZTRAP
15.3.2 Using $ZTRAP
15.3.3 Unstacking NEW Commands With Error Traps
15.3.4 $ZTRAP Flow of Control Options
15.4 Handling Errors in an Error Handler
15.4.1 Errors in a $ETRAP Error Handler
15.4.2 Errors in a $ZTRAP Error Handler
15.4.3 Error Information in the $ZERROR and $ECODE Special Variables
15.5 Forcing an Error
15.5.1 Setting $ECODE
15.5.2 Creating Application-Specific Errors
15.6 Processing Errors in Programmer Mode
15.6.1 Understanding Error Message Formats
15.6.2 Understanding the Programmer Mode Prompt
15.6.3 Recovering from the Error
15.6.4 <EDITED> Errors
|
|
Chapter 16: |
|
| |
16.1 Debugging with the Caché Debugger
16.1.1 Using Breakpoints and Watchpoints
16.1.2 Establishing Breakpoints and Watchpoints
16.1.3 Disabling Breakpoints and Watchpoints
16.1.4 Delaying Execution of Breakpoints and Watchpoints
16.1.5 Deleting Breakpoints and Watchpoints
16.1.6 Single-Step Breakpoint Actions
16.1.7 Tracing Execution
16.1.8 INTERRUPT Keypress and Break
16.1.9 Displaying Information About the Current Debug Environment
16.1.10 Using the Debug Device
16.1.11 Caché Debugger Example
16.1.12 Understanding Caché Debugger Errors
16.2 Debugging With Break
16.2.1 Using Argumentless Break to Suspend Routine Execution
16.2.2 Using Argumentless Break with a Condition
16.2.3 Using Argumented Break to Enable or Disable Interrupts
16.2.4 Using Argumented Break to Suspend Routine Execution
16.2.5 Enabling Single Stepping at the Previous Execution Level
16.2.6 Understanding the Programmer Mode Prompt Information
16.2.7 Resuming Execution after a Break or an Error
16.2.8 The NEW Command in Programmer Mode
16.2.9 The QUIT Command in Programmer Mode
16.2.10 Caché Error Messages
16.3 Using %STACK to Display the Stack
16.3.1 Running %STACK
16.3.2 Displaying the Process Execution Stack
16.3.3 Understanding the Stack Display
16.4 Error Trap Utilities
16.4.1 %ETN Application Error Trap
16.4.2 %ERN Application Error Report
|
|
Chapter 17: |
|
| |
17.1 CctrlGetDirs
17.1.1 Syntax
17.1.2 Return Value
17.2 CctrlConfigStatus
17.2.1 Syntax
17.2.2 Return Values
17.3 CctrlControl
17.3.1 Syntax
17.3.2 Return Values
17.4 CctrlRun
17.4.1 Syntax
17.4.2 Return Values
17.5 CctrlRunIO
17.5.1 Syntax
17.5.2 Return Values
|
|
Chapter 18: |
|
| |
18.1 Displaying and Switching Language Mode
18.2 DSM-11 Language Compatibility
18.2.1 Using Routine Interlock Devices
18.2.2 Issuing I/O Commands for Routine Interlock Devices
18.2.3 Working with DSM-11 Mode Routines
18.2.4 Transferring Globals from DSM-11 Systems
18.2.5 I/O Programming in DSM-11 Compatibility Mode
18.2.6 View Command and $View Function
18.2.7 ZAllocate and ZDeallocate
18.2.8 Extended Functions for DSM-11 Mode
18.2.9 Unsupported DSM-11 Functions
18.2.10 Extended Special Variables for DSM-11 Mode
18.2.11 Extended Commands for DSM-11 Compatibility Mode
18.2.12 Error Handling for DSM-11 Compatibility Mode
18.2.13 $TEXT Comment Lines
18.3 DSM Language Compatibility
18.3.1 Porting Routines from DSM to Caché
18.3.2 Programming in DSM Language Mode
18.3.3 Device Control Mnemonic Spaces and Device Control Mnemonics
18.3.4 Other DSM Language Features Implemented in Compatibility Mode
18.3.5 View Command and $View Function
18.3.6 Database Conversion
18.4 DSM-J Language Compatibility
18.5 DTM Language Compatibility
18.5.1 Programming in DTM Compatibility Mode
18.5.2 DTM Compatibility Mode Commands, Functions, and Special Variables
18.5.3 Database Conversion
18.6 MSM Language Compatibility
18.6.1 MSM Compatibility Mode Commands, Functions, and Special Variables
18.6.2 Database Conversion
|