[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 STORE*
 Assign a value to one or more variables
------------------------------------------------------------------------------
 Syntax

     STORE <exp> TO <idVar list>
     <idVar> = <exp>
     <idVar> := [ <idVar2> := ...] <exp>

 Arguments

     <exp> is a value of any data type that is assigned to the specified
     variables.

     TO <idVar list> defines a list of one or more local, static, public,
     private, or field variables that are assigned the value <exp>.  If any
     <idVar> is not visible or does not exist, a private variable is created
     and assigned <exp>.

 Description

     STORE assigns a value to one or more variables of any storage class.
     The storage classes of CA-Clipper variables are local, static, field,
     private, and public.  STORE is identical to the simple assignment
     operators (=) and (:=).  In fact, a STORE statement is preprocessed into
     an assignment statement using the inline operator (:=).  Like all of the
     assignment operators, STORE assigns to the most recently declared and
     visible variable referenced by <idVar>.  If, however, the variable
     reference is ambiguous (i.e., not declared at compile time or not
     explicitly qualified with an alias), it is assumed to be MEMVAR.  At
     runtime, if no private or public variable exists with the specified
     name, a private variable is created.

     To override a declaration, you can specify the <idVar> prefaced by an
     alias.  If <idVar> is a field variable, use the name of the work area.
     For private and public variables, you can use the memory variable alias
     (MEMVAR->).  To assign to a field variable in the currently selected
     work area (as opposed to a particular named work area), you can use the
     field alias (FIELD->).

     As a matter of principle, all variables other than field variables
     should be declared.  Preface field variables with the alias.  Use of
     private and public variables is discouraged since they violate basic
     principles of modular programming and are much slower than local and
     static variables.

     Note that the STORE command is a compatibility command and not
     recommended for any assignment operation.  CA-Clipper provides
     assignment operators that supersede the STORE command, including the
     inline assignment operator (:=), the increment and decrement operators
     (++) and (--), and the compound assignment operators (+=, -=, *=, /=).
     Refer to the Operators and Variables sections of the "Basic Concepts"
     chapter in the Programming and Utilities Guide for more information.

 Notes

     .  Assigning a value to an entire array: In CA-Clipper, neither
        the STORE command nor the assignment operators can assign a single
        value to an entire array.  Use the AFILL() function for this purpose.

     .  Memo fields: Assigning a memo field to a variable assigns a
        character value to that variable.

 Examples

     .  These statements create and assign values to undeclared
        private variables:

        STORE "string" TO cVar1, cVar2, cVar3
        cVar1:= "string2"
        cVar2:= MEMVAR->cVar1

     .  These statements assign multiple variables using both STORE
        and the inline assignment operator (:=).  The methods produce
        identical code:

        STORE "value" to cVar1, cVar2, cVar3
        cVar1 := cVar2 := cVar3 := "value"

     .  These statements assign values to the same field referenced
        explicitly with an alias.  The first assignment uses the field alias
        (FIELD->), where the second uses the actual alias name:

        USE Sales NEW
        FIELD->CustBal = 1200.98
        Sales->CustBal = 1200.98

 Files   Library is CLIPPER.LIB.


See Also: AFILL() LOCAL PRIVATE PUBLIC RELEASE REPLACE
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson