1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
include "tbtables.h"
# tbxnll -- X set rows to null
# This procedure sets all columns in a range of rows to INDEF.
# If the first row to be deleted is greater than the last row, or if
# the range of rows is outside the allocated size of the table, nothing
# is done. It is not considered an error if the first row is less than
# one or the last row is greater than the number of allocated rows in
# the table.
#
# Phil Hodge, 7-Mar-1988 Subroutine created.
# Phil Hodge, 30-Mar-1993 TB_INDEF is now TY_CHAR rather than TY_REAL.
procedure tbxnll (tp, firstrow, lastrow)
pointer tp # i: pointer to table descriptor
int firstrow # i: first row to be set to INDEF
int lastrow # i: last row to be set to INDEF
#--
int row1, row2 # firstrow, lastrow truncated to 1, nrows
int row # loop index for row number
long tbxoff() # function returning offset to beginning of row
errchk seek, write
begin
row1 = max (1, firstrow)
row2 = min (TB_NROWS(tp), lastrow)
# Write the indef record at each row to be set to INDEF.
do row = row1, row2 {
call seek (TB_FILE(tp), tbxoff (tp, row))
call write (TB_FILE(tp), Memc[TB_INDEF(tp)], TB_ROWLEN(tp))
}
end
|