Fstat

fstat is a numeric status that is returned upon execution of a database operation, a sequential file operation, or a lock instruction.

Syntax

fstat

Examples

# MYTABLE is a table with a key called KEY1, that has a unique component called KEYVAL
# Create a record in the table MYTABLE with they key value 1 if it doesn't exist 
Local File MYTABLE [MYT]
Read [MYT]KEY1=1
If fstat
   [MYT]KEYVAL=1 : Write [MYT]
   If fstat
      MSG="The key was created in the mean time"
   Else
      MSG="Key created"
   Endif
Else
   MSG="Key already exists"
Endif

Details

fstat is always set to '0' if the operation is successfully completed, and has a non-null value if there is an error:

Note that the use of literal numbers should be avoided: dedicated constants exist for this purpose.

Constant Value Explanation
[V]CST_AOK 0 Operation succeeded.
[V]CST_ALOCK 1 Record is locked.
[V]CST_AOUTSEARCH 2 In <= or >= read mode, indicates that read succeeded, but the key found is not equal to the value.
[V]CST_ADUPKEY 3 Duplicate value on unique index.
[V]CST_AOUTKEYS 4 Attempt of reading a key value that is smaller or greater than all existing key values.
[V]CST_ANOREC 5 Record not read (no current record exists).
[V]CST_ARECTICKUPD 6 Update conflict: the line no longer exists with the right updtick value (concurrency error during an update operation).
[V]CST_ARECTICKDEL 7 Delete conflict: The line no longer exists with the right updtick value (concurrency error during a delete operation).

See also

Getseq, Rdseq, Lock, Read, Look, Readlock, For, Write, Delete,Rewrite, DeleteByKey, RewriteByKey.