In addition to the standard operating system error codes, the library will return the following values on error:
EDUPL illegal duplicate ENOTOPEN file not open EBADARG illegal argument EBADKEY illegal key description ETOOMANY out of isam file handles EBADFILE isam file is corrupt ENOTEXCL can't get exclusive access ELOCKED record is locked EKEXISTS index already defined EPRIMKEY illegal primary key operation EENDFILE start or end file reached ENOREC record not found ENOCURR no current record EFLOCKED file is locked EFNAME file name is too long EBADMEM can't allocate memory ENOPRIM no primary key ELOGREAD error reading log file EBADLOG log file is corrupt ELOGOPEN unable to open log ELOGWRIT unable to write log ENOTRANS transaction not found ENOBEGIN no current transaction ENOPRIM no primary key ENOLOG logging not allowed EROWSIZE varlen record too big EAUDIT existing audit trail ENOLOCKS out of room in lock table EEXPIRED evaluation library has expired EREPAIR auto repair in progress EBADADDR bad network address ENOSCHEMA no schema defined EEXSCHEMA schema already defined
When the library returns a system error code it will also load isfd->iserrio with the sum of the following two groups of values:
IO_IDX index file IO_DAT data file IO_OPEN while opening IO_CREA while creating IO_SEEK while seeking IO_READ while reading IO_WRIT while writing IO_LOCK while locking
The base API returns the error code in isfd->iserrno of the ISAM handle, and the IO state in isfd->iserrio.
The wrap API returns these values in the library globals iserrno and iserrio.
In the base API, please refer to isErrno and isErrio for another method of reading these values.
In the wrap API, please refer to is_errno and is_errio for the thread safe method of accessing these values.