Table of Contents

Contents
            4.2.4 IBIS Row Operations
                  4.2.4.1 IBISRowClear
                  4.2.4.2 IBISRowNew
                  4.2.4.3 IBISRowDelete

4.2.4 IBIS Row Operations

A row of an IBIS file is a complete horizontal row data. Typically the only time whole rows of data are accessed are when the organization of the whole file is being modified; ie, rows can be created, deleted, or cleared.

If the client program needs to copy whole rows from one place to another within the same file, without having to translate the data into the local format, it should use the IBISRecordRead/Write routines, defining records using all columns, and with the 'u_format' type set to 'none'.

While a record only affects a well-defined subset of columns of a IBIS file, a record may at any time access any given row. For this reason, rows may not be modified using IBISRow routines while there are open records (whereas columns may be modified if they are not locked by an open record).

4.2.4.1 IBISRowClear

status = IBISRowClear(ibis,row,nrows);
call ibis_row_clear(ibis,row,nrows,status)

ibis		input	integer
row			input	integer
nrows		input	integer
status		output	integer

Clear nrows rows, starting at row row; values set to 0, ASCII elements to empty. This is the only formatted access to whole rows permitted. Rows may be cleared while there are open records; however, if the rows cleared are currently in the buffer of an open record those records may be immediately flushed. For this reason it is not recommended to mix row and record routines.

4.2.4.2 IBISRowNew

status = IBISRowNew(ibis,srow,nrows);
call ibis_row_new(ibis,srow,nrows,status)

ibis		input	integer
srow		input	integer
nrows		input	integer
status		output	integer

Insert nrows new rows, starting with row row in file, and move all the old rows down. If the rows are to be appended after the last row in file, the row value may be set to 0. Rows may be created while there are open records; however, if the rows affected (including all of the ones to be moved down) are currently in the buffer of an open record, those records may be immediately flushed. For this reason it is not recommended to mix row and record routines. If the file's AUTO_INIT value is 'ON' (the default), the row values are set to zero. Otherwise, it is the responsibility of the client program to initialize their values.

4.2.4.3 IBISRowDelete

status = IBISRowDelete(ibis,srow,nrows);
call ibis_row_delete(ibis,srow,nrows,status)

ibis		input	integer
srow		input	integer
nrows		input	integer
status		output	integer

Deletes nrows rows starting at row srow and move the remaining rows up. Rows may be deleted while there are open records; however, if the rows affected (including all of the ones to be moved up) are currently in the buffer of an open record, those records may be immediately flushed. For this reason it is not recommended to mix row and record routines.