Enscribe Programmer's Guide

Deleting Records
Record deletion, which is accomplished by way of a FILE_WRITEUPDATE64_,
FILE_WRITEUPDATEUNLOCK64_, WRITEUPDATE or WRITEUPDATEUNLOCK call with a
write-count of zero, always applies to the physical record indicated by the current-record
pointer.
File Access Examples
The remainder of this section presents annotated examples illustrating the most common ways to
access Enscribe relative files.
Example 1 Sample Relative File
Most of the examples use the following sample file:
name address dept job salary region
code code code
(DP) (RG)
0 nnnnnnnnnnnn aaaaaaaaaaaaa 56 jjj ssssss 3
1 (empty)
2 nnnnnnnnnnnn aaaaaaaaaaaaa 60 jjj ssssss 4
3 nnnnnnnnnnnn aaaaaaaaaaaaa 60 jjj ssssss 2
4 nnnnnnnnnnnn aaaaaaaaaaaaa 56 jjj ssssss 3
5 nnnnnnnnnnnn aaaaaaaaaaaaa 56 jjj ssssss 3
6 nnnnnnnnnnnn aaaaaaaaaaaaa 34 jjj ssssss 3
7 nnnnnnnnnnnn aaaaaaaaaaaaa 60 jjj ssssss 4
8 nnnnnnnnnnnn aaaaaaaaaaaaa 34 jjj ssssss 3
9 nnnnnnnnnnnn aaaaaaaaaaaaa 60 jjj ssssss 4
10 nnnnnnnnnnnn aaaaaaaaaaaaa 60 jjj ssssss 2
11 nnnnnnnnnnnn aaaaaaaaaaaaa 56 jjj ssssss 6
12 (empty)
13 (empty)
14 nnnnnnnnnnnn aaaaaaaaaaaaa 46 jjj ssssss 5
15 nnnnnnnnnnnn aaaaaaaaaaaaa 46 jjj ssssss 1
16 (empty)
17 nnnnnnnnnnnn aaaaaaaaaaaaa 60 jjj ssssss 1
18 nnnnnnnnnnnn aaaaaaaaaaaaa 34 jjj ssssss 3
19 nnnnnnnnnnnn aaaaaaaaaaaaa 46 jjj ssssss 4
Reading Sequentially by Primary Key
Using the sample file in “Sample Relative File” (page 147), the sequence of READ calls issued
immediately after opening the file would read records 0, 2, 3, 4, and 5, respectively:
CALL READ (filenum, buffer, read^count); ! reads record 0
CALL READ (filenum, buffer, read^count); ! reads record 2
CALL READ (filenum, buffer, read^count); ! reads record 3
CALL READ (filenum, buffer, read^count); ! reads record 4
CALL READ (filenum, buffer, read^count); ! reads record 5
Note that this sequence skips empty records (record 1 in the sample file).
If you want to start reading records sequentially by primary key from some specified point within
the file, you could use a sequence such as:
CALL FILE_SETPOSITION_(filenum,10F); ! sets access
path = 0
! (primary key) and the
! next-record pointer = 10
CALL READ (filenum, buffer, read^count); ! reads record 10
CALL READ (filenum, buffer, read^count); ! reads record 11
CALL READ (filenum, buffer, read^count); ! reads record 14
CALL READ (filenum, buffer, read^count); ! reads record 15
CALL READ (filenum, buffer, read^count); ! reads record 17
Accessing Relative File 147