SAVE CACHE statement

Saves the schema cache of a database to an operating system file. Subsequent sessions can then share the same cache by using the Schema Cache File (-cache) parameter.

Syntax

SAVE CACHE 
    { CURRENT | COMPLETE }
    {database-name| VALUE ( char-expr ) }
  TO
    {pathname|  VALUE ( char-expr ) }
[ NO-ERROR ]
CURRENT
Specifies that only the portion of the schema cache that applies to referenced tables is saved to the file. By using this option you can tailor a small schema cache file for an application that does not use all the tables in the database.
COMPLETE
Specifies that the complete schema cache for the database is saved to the file. If you use this option, the client process builds a complete schema cache in memory including template records and all trigger information for every table in the database.
database-name
Specifies the literal logical name of a currently connected OpenEdge database.
pathname
Specifies the literal pathname of an operating system file to hold the schema cache. In Windows, the pathname cannot contain characters outside of the non-Unicode code page. See OpenEdge Development: Internationalizing Applications for more information about Unicode and code pages.
VALUE (char-expr)
Returns the corresponding literal database name or pathname specified by the character expression in char-expr.
NO-ERROR
The NO-ERROR option is used to prevent the statement from raising ERROR and displaying error messages.

Example

This procedure saves the complete schema cache for each database that you specify in the current working directory, and displays any error messages associated with connecting or saving the cache:

r-schcsh.p

DEFINE VARIABLE db-name AS CHARACTER NO-UNDO FORMAT "x(12)" INITIAL ?.
DEFINE VARIABLE icnt    AS INTEGER   NO-UNDO.

DO WHILE db-name <> "":
 SET db-name LABEL "Database Name" 
   WITH FRAME A SIDE-LABELS TITLE "Save Cache" VIEW-AS DIALOG-BOX.
 IF db-name <> "" THEN 
   CONNECT VALUE(db-name) -1 NO-ERROR.
 ELSE LEAVE.

 IF NOT ERROR-STATUS:ERROR THEN DO:
   SAVE CACHE COMPLETE VALUE(db-name) TO VALUE(db-name + ".csh") NO-ERROR.
   IF NOT ERROR-STATUS:ERROR THEN
     MESSAGE "Saved schema cache for" db-name "in" db-name + ".csh.".
   ELSE DO:
     BELL.
     DO icnt = 1 TO ERROR-STATUS:NUM-MESSAGES:
       MESSAGE ERROR-STATUS:GET-MESSAGE(icnt) VIEW-AS ALERT-BOX.
     END.
   END.
 END.
 ELSE DO:
   BELL.
   DO icnt = 1 TO ERROR-STATUS:NUM-MESSAGES:
     MESSAGE ERROR-STATUS:GET-MESSAGE(icnt) VIEW-AS ALERT-BOX.
   END.
 END.
 DISCONNECT VALUE(db-name) NO-ERROR.
END.

Notes

See also

CONNECT statement, ERROR-STATUS system handle, NO-ERROR option