Progress
Language Reference


SAVE CACHE Statement

Interfaces
OS
SpeedScript
All
All
Yes

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 Progress database.

pathname

Specifies the literal pathname of an operating system file to hold the schema cache.

VALUE (char-expr)

Returns the corresponding literal database name or pathname specified by the character expression in char-expr.

NO-ERROR

Specifies that any errors that occur in the attempt to save the schema cache file are suppressed. After the SAVE CACHE statement completes, you can check the ERROR-STATUS system handle for information on any errors that occurred.

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 FORMAT "x(12)" INITIAL ?.
DEFINE VARIABLE icnt AS INTEGER.

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


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095