Previous Topic

Next Topic

ReadIsamData

ISAM read data at record position.

Short Name

REDIREC()

Type

ISAM function

Declaration

COUNT ReadIsamData(COUNT datno, LONG recbyt, pVOID recptr)

Description

ReadIsamData() is the ISAM equivalent to the low-level function ReadData(). ReadIsamData() reads the data at record position recbyt for data file datno into the buffer pointed to by recptr. The significance of this function is that it decreases network traffic by eliminating the need to call ReadData() and SetRecord() to update the ISAM record buffers.

Return

Value

Symbolic Constant

Explanation

0

NO_ERROR

Successful read.

33

DNUL_ERR

recptr is NULL. No data file read performed.

36

READ_ERR

Operating system could not execute read.

42

DLOK_ERR

Could not get lock on data record. No data file read performed.

160

ITIM_ERR

Record deleted by another user.

See c-tree Plus Error Codes for a complete listing of valid c-tree Plus error values.

Example

COUNT     datno;
LONG      recbyt[16];
TEXT      recptr[1024];

/* fill in an array of record positions */
FillRecordByteArray(recbyt);

/* read the 10th record in the array */
if (ReadIsamData(datno,recbyt[9],recptr))
    printf("\nCould not read 10th record, error = %d",
           isam_err);
else
    printf("\nSuccessful record read at offset %ld",recbyt[9]);

Limitations

The recbyt parameter in this function is a 4-byte value capable of addressing at most 4 gigabytes. If your application supports HUGE files (greater than 4 gigabytes), you must use the ctSetHgh() and ctGetHgh() functions to set or get the high order 4 bytes of the file offset.

See also

ctSetHgh(), ctGetHgh(), ReadData(), SetRecord()