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 Modelling
  • 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 Index Keywords
  • 8.2 Index Collation
  • Chapter 9: 
     
  • 9.1 Executing Methods
  • 9.1.1 About Return Values
  • 9.1.2 Executing Instance Methods
  • 9.1.3 Executing Class Methods
  • 9.1.4 Executing Methods Using In-Memory Instances
  • 9.1.5 Error Conditions
  • 9.2 Creating New Objects
  • 9.3 Opening Objects
  • 9.4 Modifying Objects
  • 9.4.1 Modifying Reference Properties
  • 9.4.2 Modifying Embedded Object Properties
  • 9.4.3 Modifying List Properties
  • 9.4.4 Modfiying Array Properties
  • 9.4.5 Modifying Stream Properties
  • 9.5 Saving Objects
  • 9.6 Deleting Objects
  • 9.6.1 Deleting a Single Object
  • 9.6.2 Deleting All Objects in an Extent
  • 9.7 Executing Queries
  • 9.7.1 Query Metadata Methods
  • 9.7.2 Preparing Queries for Execution
  • 9.7.3 Executing Queries
  • 9.7.4 Processing Query Results
  • 9.7.5 Closing Queries
  • 9.7.6 Example of Using a Class Query
  • Chapter 10: 
     
  • 10.1 Available Types
  • 10.2 Operation
  • 10.2.1 Using Data Types in Classes
  • 10.2.2 Parameters
  • 10.2.3 Keywords
  • 10.2.4 Data Formats and Translation Methods
  • 10.3 Enumerated Properties
  • Chapter 11: 
     
  • 11.1 The %Persistent Class
  • 11.2 The Persistence Interface
  • 11.2.1 Saving Objects
  • 11.2.2 Opening Objects
  • 11.2.3 Deleting Objects
  • 11.2.4 Testing if Objects Exist
  • 11.3 Object Extents
  • 11.3.1 The Extent Query
  • 11.4 Storage Definitions and Storage Classes
  • 11.4.1 The %CacheStorage Storage Class
  • 11.4.2 The %CacheSQLStorage Storage Class
  • 11.5 Schema Evolution
  • 11.5.1 Resetting the Storage Definition
  • Chapter 12: 
     
  • 12.1 Inheritance and SQL
  • 12.1.1 How a Class is Projected to SQL
  • 12.1.2 Naming Rules for Projected Classes
  • 12.2 The Object-SQL Projection
  • 12.2.1 Identity (OIDs Projected to SQL)
  • 12.2.2 Properties
  • 12.2.3 Methods
  • 12.2.4 SQL Triggers
  • 12.2.5 Relationships
  • Chapter 13: 
     
  • 13.1 Relationship Basics
  • 13.1.1 Relationship Keywords
  • 13.1.2 Defining a Relationship
  • 13.2 Dependent Relationships
  • 13.3 In-Memory Behavior of Relationships
  • 13.4 Persistent Behavior of Relationships
  • 13.4.1 Referential Integrity
  • 13.4.2 Persistent Behavior of Dependent Relationships
  • Chapter 14: 
     
  • 14.1 The Stream Interface
  • 14.2 Using Streams in Object Applications
  • 14.3 The Stream Class Hierarchy
  • 14.4 Using Streams with SQL
  • 14.5 Streams and ODBC
  • 14.6 Streams and Visual Basic
  • Chapter 15: 
     
  • 15.1 Projection Definitions
  • 15.1.1 Adding a Projection to a Class
  • 15.2 Projection Classes
  • 15.2.1 The Projection Interface
  • 15.2.2 The Standard Projection Classes
  • 15.2.3 Creating a New Projection Class
  • Chapter 16: 
     
  • 16.1 Defining a Method Generator
  • 16.2 How Method Generators Work
  • 16.3 Method Generator Context
  • 16.4 Implementing Method Generators
  • 16.4.1 Method Generators for Other Languages
  • 16.4.2 Specifying CodeMode within a Method Generator
  • Chapter 17: 
     
  • 17.1 Data Population Basics
  • 17.1.1 Changes to the Class Definition
  • 17.1.2 Populating Objects
  • 17.2 The POPSPEC Parameter
  • 17.2.1 Populating Arrays
  • 17.3 The OnPopulate Callback Method
  • 17.4 Details
  • Chapter 18: 
     
  • 18.1 Browsing Class Definitions
  • 18.2 Altering Class Definitions
  • Chapter 19: 
     
  • 19.1 E-Mail
  • 19.1.1 Mail Messages
  • 19.1.2 Sending E-Mail
  • 19.1.3 Receiving E-Mail
  • 19.2 FTP
  • 19.3 HTTP
  • 19.4 URL Parsing
  •  
    Appendix A: