SETFLDSTATE( ) Function Example

The following example demonstrates how you can use SETFLDSTATE( ) to change the field status. MULTILOCKS is set to ON, a requirement for table buffering. The customer table in the testdata database is opened, and CURSORSETPROP( ) is then used to set the buffering mode to optimistic table buffering (5).

GETFLDSTATE( ) is issued to display a value (1) corresponding to the unmodified state of the cust_id field before it is modified. The cust_id field is modified with REPLACE, and GETFLDSTATE( ) is issued again to display a value (2) corresponding to the modified state of the cust_id field.

SETFLDSTATE( ) is used to change the field status of the cust_id field back to 1 (unmodified). GETFLDSTATE( ) is issued again and displays 1, corresponding to the state of the cust_id field assigned by SETFLDSTATE( ). TABLEREVERT( ) is used to return the table to its original state.

CLOSE DATABASES
SET MULTILOCKS ON  && Must be on for table buffering
SET PATH TO (HOME(2) + 'Data\')     && Sets path to database
OPEN DATABASE testdata  && Open testdata database
USE Customer     && Open customer table
= CURSORSETPROP('Buffering', 5, 'customer')  && Enable table buffering

CLEAR
? GETFLDSTATE('cust_id')  && Displays 1, not modified
REPLACE cust_id    WITH '***'  && Changes field contents
? GETFLDSTATE('cust_id')  && Returns 2, field modified
= SETFLDSTATE('cust_id', 1)  && Change the field status
? GETFLDSTATE('cust_id')  && Displays 1, not modified
= TABLEREVERT(.T.)  && Discard all table changes