RESTORE Problem with change to higher level privates.
Clipper Version 1.29 dtd 04/15/91.
Problem Statement
RESTSTORE FROM <xcMemFile> ADDITIVE may change the value(s) of higher
level privates. An example:
// Run this as a standalone program:
Procedure MemSave
Memvar VarA
Private VarA
VarA := 'ABCDEF'
Save to Test All Like VarA
Return
// Then run this:
Procedure A
Memvar V1
Private V1
V1 = 1
? 'Procedure A, V1 Should be 1, V1=',V1 // => 1
Do B
? 'Procedure A, V1 Should be 1, V1=',V1 // => 2
Return
***********
Procedure B
Memvar V1
Private V1
V1 = 2
? 'Procedure B, V1 Should be 2, V1=',V1 // => 2
Do C
? 'Procedure B, V1 Should be 2, V1=',V1 // => 3
Return
***********
Procedure C
MemVar V1
Private V1
V1 = 3
? 'Procedure C, V1 Should be 3, V1=',V1 // => 3
RESTORE FROM Test ADDITIVE
Return
Cause
Unknown
Work Around(s)
Don't store variables in .MEM files.