Contents

Chapter 1: 
 
  • 1.1 Caché Objects Architecture
  • 1.2 Class Definitions and the Class Dictionary
  • 1.2.1 Creating Class Definitions
  • 1.2.2 The Class Dictionary
  • 1.3 The Caché Class Library
  • 1.4 Development Tools
  • 1.4.1 Caché Studio
  • 1.4.2 Caché RoseLink
  • 1.4.3 SQL-based Development
  • 1.4.4 XML-based Development
  • 1.5 Client Interoperability
  • 1.5.1 Java
  • 1.5.2 ActiveX / COM / .NET
  • 1.5.3 Caché Server Pages
  • 1.5.4 C++
  • 1.5.5 XML
  • 1.5.6 The Caché SQL Gateway
  • 1.5.7 The Caché Activate ActiveX Gateway
  • Chapter 2: 
     
  • 2.1 Classes and Objects
  • 2.2 Abstraction and Modeling
  • 2.3 Inheritance and Polymorphism
  • 2.4 Encapsulation
  • 2.5 Extensibility
  • 2.6 Object Persistence
  • 2.7 Object Binding
  • Chapter 3: 
     
  • 3.1 Referring to an Object—OREF and OID
  • 3.1.1 OID and ID Values
  • 3.1.2 OREFs and Reference Counting
  • 3.2 Types of Classes
  • 3.2.1 Transient Object Classes
  • 3.2.2 Persistent Object Classes
  • 3.2.3 Serial Object Classes
  • 3.2.4 Data Type Classes
  • 3.3 Inheritance
  • 3.3.1 Multiple Inheritance
  • 3.4 Class Compilation
  • Chapter 4: 
     
  • 4.1 Naming Conventions
  • 4.1.1 General Identifier Rules
  • 4.1.2 Class Names
  • 4.1.3 Class Member Names
  • 4.2 Class Keywords
  • 4.3 Class Parameters
  • Chapter 5: 
     
  • 5.1 Overview of Packages
  • 5.2 Package Names
  • 5.3 Defining Packages
  • 5.4 Using Packages
  • 5.4.1 The IMPORT Directive
  • 5.5 Packages and SQL
  • 5.6 Built-in Packages
  • Chapter 6: 
     
  • 6.1 Method Arguments
  • 6.1.1 Specifying Default Values
  • 6.1.2 Calling By Reference
  • 6.2 Method Return Values
  • 6.3 Method Visibility
  • 6.4 Method Language
  • 6.5 Method Keywords
  • 6.6 Instance and Class Methods
  • 6.7 Kinds of Methods
  • 6.7.1 Code Methods
  • 6.7.2 Expression Methods
  • 6.7.3 Call Methods
  • 6.7.4 Method Generators
  • Chapter 7: 
     
  • 7.1 Property Keywords
  • 7.2 Property Visibility
  • 7.3 Property Behavior
  • 7.4 Property Accessors
  • 7.5 Attribute Properties
  • 7.5.1 Data Type Properties
  • 7.5.2 Object-Valued Properties
  • 7.5.3 Collection Properties
  • 7.5.4 Stream Properties
  • 7.5.5 Multidimensional Properties
  • Chapter 8: 
     
  • 8.1 Query Basics
  • 8.1.1 The Structure of a Class Query
  • 8.1.2 Query Keywords
  • 8.1.3 Creating a Class Query Specification
  • 8.2 User-Written Class Queries
  • 8.2.1 The querynameExecute Method
  • 8.2.2 The querynameFetch Method
  • 8.2.3 The querynameClose Method
  • Chapter 9: 
     
  • 9.1 Index Keywords
  • 9.2 Index Collation
  • Chapter 10: 
     
  • 10.1 Executing Methods
  • 10.1.1 About Return Values
  • 10.1.2 Executing Instance Methods
  • 10.1.3 Executing Class Methods
  • 10.1.4 Executing Methods Using In-Memory Instances
  • 10.1.5 Error Conditions
  • 10.2 Creating New Objects
  • 10.3 Opening Objects
  • 10.4 Modifying Objects
  • 10.4.1 Modifying Reference Properties
  • 10.4.2 Modifying Embedded Object Properties
  • 10.4.3 Modifying List Properties
  • 10.4.4 Modfiying Array Properties
  • 10.4.5 Modifying Stream Properties
  • 10.5 Saving Objects
  • 10.6 Deleting Objects
  • 10.6.1 Deleting a Single Object
  • 10.6.2 Deleting All Objects in an Extent
  • 10.7 Executing Queries
  • 10.7.1 Query Metadata Methods
  • 10.7.2 Preparing Queries for Execution
  • 10.7.3 Executing Queries
  • 10.7.4 Processing Query Results
  • 10.7.5 Closing Queries
  • 10.7.6 Example of Using a Class Query
  • Chapter 11: 
     
  • 11.1 Available Types
  • 11.2 Operation
  • 11.2.1 Using Data Types in Classes
  • 11.2.2 Parameters
  • 11.2.3 Keywords
  • 11.2.4 Data Formats and Translation Methods
  • 11.3 Enumerated Properties
  • Chapter 12: 
     
  • 12.1 The %Persistent Class
  • 12.2 The Persistence Interface
  • 12.2.1 Saving Objects
  • 12.2.2 Opening Objects
  • 12.2.3 Deleting Objects
  • 12.2.4 Testing if Objects Exist
  • 12.3 Object Extents
  • 12.3.1 The Extent Query
  • 12.4 Storage Definitions and Storage Classes
  • 12.4.1 The %CacheStorage Storage Class
  • 12.4.2 The %CacheSQLStorage Storage Class
  • 12.5 Schema Evolution
  • 12.5.1 Resetting the Storage Definition
  • Chapter 13: 
     
  • 13.1 Inheritance and SQL
  • 13.1.1 How a Class is Projected to SQL
  • 13.1.2 Naming Rules for Projected Classes
  • 13.2 The Object-SQL Projection
  • 13.2.1 Identity (OIDs Projected to SQL)
  • 13.2.2 Properties
  • 13.2.3 Methods
  • 13.2.4 SQL Triggers
  • 13.2.5 Relationships
  • Chapter 14: 
     
  • 14.1 Relationship Basics
  • 14.1.1 Relationship Keywords
  • 14.1.2 Defining a Relationship
  • 14.2 Dependent Relationships
  • 14.3 In-Memory Behavior of Relationships
  • 14.4 Persistent Behavior of Relationships
  • 14.4.1 Referential Integrity
  • 14.4.2 Persistent Behavior of Dependent Relationships
  • Chapter 15: 
     
  • 15.1 The Stream Interface
  • 15.2 Using Streams in Object Applications
  • 15.3 The Stream Class Hierarchy
  • 15.4 Using Streams with SQL
  • 15.5 Streams and ODBC
  • 15.6 Streams and Visual Basic
  • Chapter 16: 
     
  • 16.1 Projection Definitions
  • 16.1.1 Adding a Projection to a Class
  • 16.2 Projection Classes
  • 16.2.1 The Projection Interface
  • 16.2.2 The Standard Projection Classes
  • 16.2.3 Creating a New Projection Class
  • Chapter 17: 
     
  • 17.1 Defining a Method Generator
  • 17.2 How Method Generators Work
  • 17.3 Method Generator Context
  • 17.4 Implementing Method Generators
  • 17.4.1 Method Generators for Other Languages
  • 17.4.2 Specifying CodeMode within a Method Generator
  • Chapter 18: 
     
  • 18.1 Data Population Basics
  • 18.1.1 Changes to the Class Definition
  • 18.1.2 Populating Objects
  • 18.2 The POPSPEC Parameter
  • 18.2.1 Populating Embedded Objects
  • 18.2.2 Populating Lists
  • 18.2.3 Populating Arrays
  • 18.2.4 Custom Populate Actions
  • 18.3 Details
  • Chapter 19: 
     
  • 19.1 %OnAddToSaveSet
  • 19.2 %OnAfterSave
  • 19.3 %OnBeforeSave
  • 19.4 %OnClose
  • 19.5 %OnConstructClone
  • 19.6 %OnDelete
  • 19.7 %OnDetermineClass
  • 19.8 %OnNew
  • 19.9 %OnOpen
  • 19.10 %OnRollBack
  • 19.11 %OnValidateObject
  • 19.12 OnPopulate
  • Chapter 20: 
     
  • 20.1 .. Syntax
  • 20.2 ##Class Syntax
  • 20.2.1 Invoking a Class Method
  • 20.2.2 Casting a Method
  • 20.3 ##this Syntax
  • 20.4 ##super Syntax
  • 20.5 i%<PropertyName> Syntax
  • Chapter 21: 
     
  • 21.1 Browsing Class Definitions
  • 21.2 Altering Class Definitions
  • Chapter 22: 
     
  • 22.1 E-Mail
  • 22.1.1 Mail Messages
  • 22.1.2 Sending E-Mail
  • 22.1.3 Receiving E-Mail
  • 22.2 FTP
  • 22.3 HTTP
  • 22.4 URL Parsing
  •  
    Appendix A: