Caché Programming Orientation Guide
Contents
 
   
Server:docs2
Instance:LATEST
User:UnknownUser
 
-
Go to:
Search:    

 
Contents

Preface : 
 
 
Chapter 1: 
 
  • 1.1 Introduction
  • 1.2 Routines
  • 1.3 Classes
  • 1.4 Introduction to Globals
  • 1.4.1 Ways to Access Data
  • 1.4.2 Implications of Using Globals
  • 1.5 Caché SQL
  • 1.6 Macros
  • 1.7 Include Files
  • 1.8 How These Code Elements Work Together
  • Chapter 2: 
     
  • 2.1 Routines
  • 2.2 Procedures, Functions, and Subroutines
  • 2.3 Variables
  • 2.3.1 Variable Names
  • 2.3.2 Variable Types
  • 2.3.3 Variable Length
  • 2.3.4 Variable Existence
  • 2.4 Variable Availability and Scope
  • 2.4.1 Summary of Variable Scope
  • 2.4.2 The NEW Command
  • 2.5 Multidimensional Arrays
  • 2.5.1 Basics
  • 2.5.2 Structure Variations
  • 2.5.3 Use Notes
  • 2.6 Operators
  • 2.6.1 Familiar Operators
  • 2.6.2 Unfamiliar Operators
  • 2.7 Commands
  • 2.7.1 Familiar Commands
  • 2.7.2 Commands for Use with Multidimensional Arrays
  • 2.8 Special Variables
  • 2.8.1 $SYSTEM Special Variable
  • 2.9 Locking and Concurrency Control
  • 2.9.1 Basics
  • 2.9.2 The Lock Table
  • 2.9.3 Locks and Arrays
  • 2.9.4 Introduction to Lock Types
  • 2.10 System Functions
  • 2.10.1 Value Choice
  • 2.10.2 Existence Functions
  • 2.10.3 List Functions
  • 2.10.4 String Functions
  • 2.10.5 Working with Multidimensional Arrays
  • 2.10.6 Character Values
  • 2.10.7 $ZU Functions
  • 2.11 Date and Time Values
  • 2.11.1 Local Time
  • 2.11.2 UTC Time
  • 2.11.3 Date and Time Conversions
  • 2.11.4 Details of the $H Format
  • 2.12 Using Macros and Include Files
  • 2.13 Using Routines and Subroutines
  • 2.13.1 Passing Variables by Value or by Reference
  • 2.14 Potential Pitfalls
  • 2.15 For More Information
  • Chapter 3: 
     
  • 3.1 Objects and Properties
  • 3.2 Methods
  • 3.2.1 Instance Methods
  • 3.2.2 Class Methods
  • 3.2.3 Methods and Variable Scope
  • 3.3 Class Constants (Parameters)
  • 3.4 Class Definitions and Types
  • 3.5 Inheritance
  • 3.5.1 Terminology and Basics
  • 3.5.2 Example
  • 3.5.3 Use of Inherited Class Members
  • 3.5.4 Use of Subclasses
  • 3.6 Classes as Containers of Methods
  • 3.7 Abstract Classes
  • Chapter 4: 
     
  • 4.1 Class Names and Packages
  • 4.2 Basic Contents of a Class Definition
  • 4.3 Class Name Shortcuts
  • 4.4 Class Parameters
  • 4.5 Properties
  • 4.5.1 Specifying Property Keywords
  • 4.6 Properties Based on Data Types
  • 4.6.1 Data Type Classes
  • 4.6.2 Overriding Parameters of Data Type Classes
  • 4.6.3 Using Instance Variables
  • 4.6.4 Using Other Property Methods
  • 4.7 Methods
  • 4.7.1 Specifying Method Keywords
  • 4.7.2 References to Other Class Members
  • 4.7.3 References to Methods of Other Classes
  • 4.7.4 References to Current Instance
  • 4.7.5 Method Arguments
  • 4.8 Special Kinds of Methods
  • 4.8.1 Call Methods
  • 4.8.2 Method Generators
  • 4.9 Class Queries
  • 4.10 XData Blocks
  • 4.11 Macros and Include Files in Class Definitions
  • 4.12 Inheritance Rules in Caché
  • 4.12.1 Inheritance Order
  • 4.12.2 Primary Superclass
  • 4.12.3 Most-Specific Type Class
  • 4.12.4 Overriding Methods
  • 4.13 For More Information
  • Chapter 5: 
     
  • 5.1 Introduction to Caché Object Classes
  • 5.2 Basic Features of Object Classes
  • 5.3 OREFs
  • 5.4 Stream Interface Classes
  • 5.4.1 Stream Classes
  • 5.4.2 Example
  • 5.5 Collection Classes
  • 5.5.1 List and Array Classes for Use As Standalone Objects
  • 5.5.2 List and Arrays as Properties
  • 5.6 Useful Caché ObjectScript Functions
  • 5.7 For More Information
  • Chapter 6: 
     
  • 6.1 Introduction
  • 6.2 Caché SQL
  • 6.2.1 Where You Can Use Caché SQL
  • 6.2.2 Object Extensions to SQL
  • 6.3 Special Options for Persistent Classes
  • 6.4 SQL Projection of Persistent Classes
  • 6.4.1 Demonstration of the Object-SQL Projection
  • 6.4.2 Basics of the Object-SQL Projection
  • 6.4.3 Classes and Extents
  • 6.5 Object IDs
  • 6.5.1 How an ID Is Determined
  • 6.5.2 Accessing an ID
  • 6.6 Storage
  • 6.6.1 A Look at a Storage Definition
  • 6.6.2 Globals Used by a Persistent Class
  • 6.6.3 Default Structure for a Stored Object
  • 6.6.4 Notes
  • 6.7 Options for Creating Persistent Classes and Tables
  • 6.8 Accessing Data
  • 6.9 A Look at Stored Data
  • 6.10 Storage of Generated Code for Caché SQL
  • 6.11 For More Information
  • Chapter 7: 
     
  • 7.1 Introduction to Namespaces and Databases
  • 7.1.1 Locks, Globals, and Namespaces
  • 7.2 Database Basics
  • 7.2.1 Database Configuration
  • 7.2.2 Database Features
  • 7.2.3 Database Portability
  • 7.3 System-Supplied Databases
  • 7.4 System-Supplied Namespaces
  • 7.5 Custom Items in CACHESYS
  • 7.6 What Is Accessible in Your Namespaces
  • 7.6.1 System Globals in Your Namespaces
  • 7.7 Stream Directory
  • 7.8 For More Information
  • Chapter 8: 
     
  • 8.1 Introduction
  • 8.1.1 Security Elements Within Caché
  • 8.1.2 Secure Communications to and From Caché
  • 8.2 Caché Applications
  • 8.3 Caché Authorization Model
  • Chapter 9: 
     
  • 9.1 Introduction
  • 9.2 Caché Locales and National Language Support
  • 9.3 Default I/O Tables
  • 9.4 Files and Character Encoding
  • 9.5 Manually Translating Characters
  • Chapter 10: 
     
  • 10.1 Management Portal
  • 10.1.1 Accessing the Portal
  • 10.2 Caché Studio
  • 10.2.1 Starting Studio
  • 10.2.2 Orientation
  • 10.2.3 Documents (“Files”)
  • 10.2.4 Integration with Source Control
  • 10.2.5 Other Environmental Options
  • 10.3 Terminal
  • 10.3.1 Starting the Terminal
  • 10.3.2 Orientation
  • 10.3.3 Environmental Options
  • 10.3.4 Using the Terminal
  • 10.3.5 Common Keyboard Accelerators
  • 10.4 System Qualifiers and Flags
  • 10.4.1 Viewing the Current Default Qualifiers and Flags
  • 10.4.2 Changing the Defaults
  • 10.4.3 Key Flags
  • 10.4.4 Historical Note
  • 10.5 InterSystems Classes and Routines
  • 10.6 InterSystems Class Reference (Documatic)
  • 10.6.1 Accessing the InterSystems Class Reference
  • 10.6.2 A Quick Look at the InterSystems Class Reference
  • 10.7 Tools for Debugging
  • 10.7.1 Studio Debugger
  • 10.7.2 ZBREAK
  • 10.7.3 ^%STACK
  • 10.7.4 Trace Statements
  • 10.7.5 Audit Log
  • 10.7.6 System Logs
  • 10.8 For More Information
  • Chapter 11: 
     
  • 11.1 Support for Long String Operations
  • 11.1.1 Enabling Long String Operations
  • 11.2 System-Wide String Collation
  • 11.3 Settings for Caché SQL
  • 11.4 Use of IPv6 Addressing
  • 11.5 Configuring a Server Programmatically
  • 11.6 For More Information
  • Chapter 12: 
     
  • 12.1 Finding Definitions of Code Elements
  • 12.1.1 Finding a Class Member in Studio
  • 12.1.2 Finding a Class Member in the InterSystems Class Reference
  • 12.1.3 Finding Subclasses in the InterSystems Class Reference
  • 12.1.4 Finding a Macro in Studio
  • 12.2 Defining Databases
  • 12.3 Defining Namespaces
  • 12.4 Mapping a Global
  • 12.5 Mapping a Routine
  • 12.6 Mapping a Package
  • 12.7 Generating Test Data
  • 12.7.1 Extending %Populate
  • 12.7.2 Using Methods of %Populate and %PopulateUtils
  • 12.8 Removing Stored Data
  • 12.9 Resetting Storage
  • 12.10 Browsing a Table
  • 12.11 Executing an SQL Query
  • 12.12 Examining Object Properties
  • 12.13 Viewing Globals
  • 12.14 Displaying INT Code
  • 12.15 Testing a Query and Viewing a Query Plan
  • 12.16 Viewing the Query Cache
  • 12.17 Building an Index
  • 12.18 Using the Tune Table Facility
  • 12.19 Moving Code from One Database to Another
  • 12.20 Moving Data from One Database to Another
  • 12.21 Renaming a Class
  • 12.22 For More Information
  •  
    Appendix A: 
     
  • A.1 Non-Alphanumeric Characters in the Middle of “Words”
  • A.2 . (One Period)
  • A.3 .. (Two Periods)
  • A.4 # (Pound Sign)
  • A.5 Dollar Sign ($)
  • A.6 Percent Sign (%)
  • A.7 Caret (^)
  • A.8 Other Forms
  • Appendix B: 
     
  • B.1 Namespaces
  • B.1.1 Namespace Names to Avoid
  • B.2 Databases
  • B.2.1 Database Names to Avoid
  • B.3 Local Variables
  • B.3.1 Local Variable Names to Avoid
  • B.4 Global Variables
  • B.4.1 Global Variable Names to Avoid
  • B.5 Routines and Labels
  • B.5.1 Reserved Routine Names for Your Use
  • B.6 Classes
  • B.6.1 Class Names to Avoid
  • B.7 Class Members
  • B.7.1 Member Names to Avoid
  • B.8 Custom Items in CACHESYS
  • Appendix C: 
     
  • C.1 Long String Limit
  • C.2 Class Limits
  • C.3 Class and Routine Limits
  • C.4 Other Programming Limits
  • Appendix D: 
     
  • D.1 Representations of Numbers
  • D.1.1 Decimal Format
  • D.1.2 $DOUBLE Format
  • D.1.3 SQL Representations
  • D.2 Choosing a Numeric Format
  • D.3 Converting Numeric Representations
  • D.3.1 Strings
  • D.3.2 Decimal to $DOUBLE
  • D.3.3 $DOUBLE to Decimal
  • D.3.4 Decimal to String
  • D.4 Operations Involving Numbers
  • D.4.1 Arithmetic
  • D.4.2 Comparison
  • D.4.3 Boolean Operations
  • D.5 Summary of Changes Introduced in Version 2008.2
  • D.6 Exact Representation of Values
  • D.7 See Also