Operating system return codes (1 to 7999)
| rc
| Codename
| Explanation
|
1
| EXB_FUNCTION_NOT_IMPLEMENTED
| Function is not implemented: This routine is not implemented in this version,
either due to an operating system limitation, or if a demo then because the feature is not
implemented.
|
8
| EXB_NOT_ENOUGH_MEMORY
| Cannot get memory requested: A request for memory was made by Bullet
but the request failed.
|
12
| EXB_INVALID_ACCESS
| Invalid file access flags: The access mode for the file open specifies
an invalid combination.
|
13
| EXB_INVALID_PARAMETER
| Invalid parameter: An argument passed to a function is not a valid
value. (The max DOS/Win16 file handles is 255.)
|
15
| EXB_INVALID_DRIVE
| Not a valid drive letter: The drive letter is not valid.
|
38
| EXB_UNEXPECTED_EOF
| Unexpected EOF (bytes read != bytes asked): On a read operation, the number
of bytes specfied to be read were not all read. Not necessarily an error.
|
39
| EXB_DISK_FULL
| Disk full on WriteFile: On a write operation, the number of bytes specified
to be written could not be written. No bytes are written.
|
80
| EXB_FILE_EXISTS
| Cannot create file since it already exists: Bullet will not overwrite
when creating a file. Delete the existing file, if necessary.
|
174
| EXB_ATOMIC_LOCK_NOT_SUPPORTED
| Only OS/2 32-bit supports atomic locks: Atomic relocking is supported only by OS/2.
|
175
| EXB_READ_LOCKS_NOT_SUPPORTED
| OS/2 and WinNT support read (shared, non-exclusive) locks: Shared locking is
supported only by OS/2 and WinNT.
|
###
| rc <= 7999
| Other operating system return codes, as generated/returned by the OS itself.
|
General return codes (8200 to 8399)
| rc
| Codename
| Explanation
|
8295
| WRN_USING_ST850
| Code page info could not be loaded, using default cp=850 (DOS, create ix4): In
DOS/Win16 a code page request failed so Bullet is using code page 850 (ASCII) by default.
|
8296
| WRN_USING_ST1252
| Cp info could not be loaded, using default cp=1252 (DOS, create ix4): In
DOS/Win16 a code page request failed so Bullet is using code page 1252 (Win-Ansi) by default.
|
8305
| EXB_SYSTEM_HANDLE
| Bullet won't use or close handles 0-2: File handles less than 3 are not
used by Bullet. Does not apply to Win32 where handles are pointers.
|
8306
| EXB_FILE_NOT_OPEN
| File not open (not Bullet handle, including xbLink): The structure.handle
member is 0 and so cannot be operated on.
|
8307
| EXB_FILE_IS_DIRTY
| Tried to reload/zap header but current still dirty: The file handle has
unwritten header/node information in memory yet a request was made to reload the
header/node from disk. Flush the handle first.
|
8308
| EXB_BAD_FILETYPE
| tried key op on non-key file, data op on non-data file: Index operations
need a KH structure khPtr; data operations need a DH structure dhPtr.
|
8313
| EXB_BUZZ
| Evaluation version timed-out: The demo version is for evaluation purposes
only and is time-limited to about 30 days of average use.
|
8314
| EXB_BAD_INDEX
| BltGetVar/SetVar index is not valid: The index for the Bullet state variable
to get/set is not valid.
|
8316
| EXB_FILE_BOUNDS
| File size GT max file size (or GT half that if read-through locks): The
file position would exceed the maximum file size allowed by the operating system so the
operation is not performed.
|
8317
| EXB_READONLY
| Handle has read-only flag active and attempted to write to it: The file
handle was specified with the read-only flag and an attempt was made to write to it.
|
8318
| WRN_INCOMPLETE_XACTION
| Header xactionFlag indicates an incomplete transaction (IX4|DBF|DBT): The
file was previously written to but was not flushed/closed properly. The file may be
corrupt. For data files, use Validate.exe. For index files, use BltFuncIx4Reindex.
|
8319
| EXB_FILE_ALREADY_OPEN
| .handle is non-zero so already has an open file handle. The structure.handle
is not zero so either the structure is corrupt, was not initialized, or is already in use.
|
8351
| EXB_BAD_ALLOC_SIZE
| Requested allocation size is more than bullet_MASZ, or is 0: A request for
memory greater than that allow by bullet_MASZ was made, or a request of 0 bytes was made.
|
8352
| EXB_IO_WRAP_DETECTED
| File I/O for bytes to/from memory address would cause segment wrap: The memory
buffer provided plus the amount of bytes to I/O would exceed the end of the segment (DOS/Win16).
|
8395
| EXB_NULLFNPTR
| Null function pointer detected (without default function available): ll_testCallBack()
(16-bit builds) has KH.xCallBackPtr = 0.
|
8396
| EXB_NULLPTR
| General null pointer detected: A pointer was 0 when 0 is not a valid value
for that pointer.
|
8398
| EXB_INVALID_DLL
| DLL/LIB is not valid: The library has been altered from its original state.
|
Index return codes (8500 to 8599)
| rc
| Codename
| Explanation
|
8501
| EXB_KEY_NOT_FOUND
| Exact match of key not found (also, recNo not same, if specified): A call to get
the exact key failed because that key was not in the index file. If duplicate keys are allowed,
and the search specified a record number also, and the key/recNo pair are not in the index file
this code is returned as well.
|
8502
| EXB_KEY_EXISTS
| Key exists already and dups not allowed (or key+recno exists w/dups): A key
already exists with the same value. If duplicate keys are allowed, and the key and its
32-bit data (typically the record number) already exist, then that too returns this code.
|
8503
| EXB_END_OF_FILE
| Already at last index order: A next-key operation was requested with the index
already positioned at the end.
|
8504
| EXB_TOP_OF_FILE
| Already at first index order: A previous-key operation was requested with the
index already positioned at the beginning (top).
|
8505
| EXB_EMPTY_FILE
| Nothing to do since no keys: There are no keys in the index file so searching
cannot be performed.
|
8507
| EXB_BAD_INDEX_STACK
| Index file is corrupt (stack over/underflow): The internal index structure
is corrupt (internal error).
|
8508
| EXB_BAD_INDEX_READ0
| Index file is corrupt (read attempt of node 0): The internal index structure
is corrupt (internal error).
|
8509
| EXB_BAD_INDEX_WRITE0
| Index file is corrupt (write attempt to node 0): The internal index structure
is corrupt (internal error).
|
8510
| EXB_SEEK_PREV_FAILED
| Seek prev failed: The internal index structure is corrupt (internal error).
|
8511
| EXB_BAD_INDEX_ROOTNODE
| Index file is corrupt (root node cannot = 0): The internal index structure
is corrupt (internal error).
|
8512
| EXB_BAD_INDEX_KEYCOUNT
| Index file is corrupt (key count GT max keys on node): The internal index structure
is corrupt (internal error).
|
8513
| EXB_BAD_INDEX_NOTAVAIL
| Index file is corrupt (avail node is not so marked): The internal index structure
is corrupt (internal error).
|
8514
| EXB_RECNO_IS_ZERO
| Cannot delete a key when passed a recNo of 0: The recNo (or 32-bit data) of a
key must be specified for that key to be deleted.
|
8522
| EXB_UNKNOWN_INDEX
| Not a Bullet IX4 index file: The index file format is not known.
|
8523
| EXB_KEY_TOO_LONG
| Keylength GT MAX_KEY_LENGTH, or is 0: The length of the key is too long.
|
8524
| EXB_BAD_XLATE_INFO
| Build key xlate.info is invalid: The data at KH.xlateExp[] is not valid.
|
8525
| EXB_SORT_STACK_OV
| Sort stack exceeded max depth: Qsort failed. (Internal error.)
|
8534
| EXB_BAD_NODE_SIZE
| NodeSize is not 512,1024,1536,2048, or 2560 (must be specified at open): The
node size must be specified at BltIx4OpenFile(). If the node size is not already known to
the program, BltIx4InfoFile() should be used to find out.
|
8535
| EXB_FILENAME_TOO_LONG
| Filename GT max path length (or null ptr): This applies when the memo file
is created.
|
8538
| EXB_BAD_SORT_CMP_CODE
| SortCmp code (among those less than 32) is not valid: This code is returned
by BltFuncIx4SortCmp() when requesting HIGH_VALUES (only) when the .sortCmpCode
is not a valid (beyond the last built-in sortCmpCode), or when the sortCmpCode is > 32
and KH.xUserSortCmpPtr is 0.
|
8539
| EXB_REQUIRES_FPU
| Converting text to floating-pointing double requires FPU support: To convert
string field data ("123") to for 64-bit or double floating-point for binary key storage
requires an FPU.
|
8541
| EXB_KEYX_NULL
| Expression is effectively NULL: The parsed key expression evaluates to a zero
key length.
|
8542
| EXB_KEYX_TOO_LONG
| TBLT_KH.expression GT IX4_MAX_EXP_SIZE bytes: The parsed key expression evaluates
to a key longer than the maximum allowed size (196 bytes).
|
8543
| EXB_KEYX_SYM_TOO_LONG
| Fieldname/funcname in expression GT 10 single-byte OEM chars: A field name in
the DBF data header is longer than 10 characters. The fieldname field is 11 bytes long, and
the fieldname must be terminated with a 0, so a fieldname longer than 10 characters indicates
a corrupt data file.
|
8544
| EXB_KEYX_SYM_UNKNOWN
| Fieldname/funcname in expression unknown: A fieldname in the key expression
is not found in the DBF header, and is not a reserved word. The key expression can only
use fieldnames found in the DBF header (DH.fd[].fieldName).
|
8545
| EXB_KEYX_TOO_MANY_SYMS
| Too many symbols/fields used in expression: A maximum of 16 key components
may be used in a key expression.
|
8546
| EXB_KEYX_BAD_SUBSTR
| Invalid SUBSTR() operand in expression: SUBSTR() cannot be used on a field
if that field is being used as a numeric key. For example, fieldTypes N and F cannot
be used with SUBSTR() unless the sortCmpCode is SORT_ASCII or SORT_NLS, or a sort code
above 32; binary fields (Y, SORT_MIXED_*) cannot be used with SUBSTR() at all.
|
8547
| EXB_KEYX_BAD_SUBSTR_SZ
| SUBSTR() exceeds field's size: The start offset plus the number of bytes to
substring exceed the total length of the field.
|
8548
| EXB_KEYX_BAD_FORM
| Didn't match expected symbol in expression or bad nesting: Expected right
paren, comma, etc., was not matched; or, UPPER() cannot be used within a DESCEND(), for
example DESCEND(UPPER(FIELD_ONE)) is not valid.
|
8549
| EXB_KEYX_BAD_TYPE
| Field type not compatible with sortCmp mode: Field type 'C' can only be used
with SORT_ASCII, SORT_NLS, SORT_MIXED, or sortCmp codes above 32.
|
8551
| EXB_NO_READS_FOR_RUN
| Unlikely, use different reindex buffer size: This should not occur.
|
8552
| EXB_TOO_MANY_RUNS
| Unlikely, too many reindex runs (more than 65535 runs (8128 for 16-bit builds)):
Increase the reindex buffer space, if possible, or use a smaller key length. See the
File structures section for details.
|
8553
| EXB_TOO_MANY_RUNS_FOR_BUFFER
| Unlikely, too many reindex runs for run buffer (varies by buffer size, key size):
Decrease the key length or increase the reindex buffer. See
EXB_TOO_MANY_RUNS.
|
Data return codes (8600 to 8699)
| rc
| Codename
| Explanation
|
8601
| EXB_EXT_XBLINK
| xbLink handle is not internal DBF (xbLinkPtr is -1): All Bullet index routines
that operate on data files require that KH.xbLinkPtr point to a valid DH structure, and not
an external (non-Bullet) data file.
|
8603
| EXB_RECORD_TOO_LONG
| Record length is GT 64K or GT bullet_MASZ: The record is longer than the
maximum allowed. The recommened maximum fixed-length record length is 1000 bytes.
|
8605
| EXB_BAD_FIELD_COUNT
| Fields LTE 0 or GTE MAX_DBF_FIELDS: The number of fields as reported
by the DBF header is greater than the maximum fields allowed, or is 0.
|
8606
| EXB_BAD_HEADER
| Bad header: The record length is 0 as reported by the DBF header.
|
8609
| EXB_BAD_RECNO
| recNo=0, or GT recs in data file hdr, or not last recNo for debump: To physically
remove a data record, the data record must be the last in the file (record number to remove must
equal DH.noRecords).
|
8610
| WRN_RECORD_EXCLUDE
| Record's tag byte matches exclude tag or does not match include tag: The
KH.tagMarks data is non-zero, indicating that Bullet is to check if a data record should
be excluded from consideration. It is generated by the build-key routine. High-level
Bullet routines will not use record data whose key build returns with this code (such
as the reindex routine).
|
8611
| EXB_EMPTY_FIELDLEN
| Field length is 0: A field has its field length set to 0.
|
8612
| EXB_NO_RECORDS
| No data records: There are no data records for BltDataSort() or BltDataPack().
|
Memo return codes (8700 to 8799)
| rc
| Codename
| Explanation
|
8701
| WRN_CANNOT_OPEN_MEMO
| DBF says memo file but memo open fails: The DBF's DH.fileID has bits 7 and 3
set to 1, indicating a memo file is attached to this data file, yet the memo file open failed.
The DBF file is opened by Bullet nevertheless.
|
8703
| EXB_BAD_BLOCKSIZE
| Memo blocksize must be at least 24 bytes: The memo block size, specified in
DH.memoBlockSize, must be at least 24 bytes to cover the size needed by the memo header.
When .memoBlockSize is 0 the default size of 512 bytes is used.
|
8704
| EXB_MEMO_DELETED
| Memo is deleted: The memo record, as indicated by its availLink, is deleted.
To be active, a memo record must have its availLink set to 0x8FFFF (or the value in
DH.memoInUseFlag if not 0). Even if deleted, BltGetMemo() still retrieves the memo record,
though the memo's byte count is now rounded up to the next block size.
|
8705
| EXB_MEMO_PAST_END
| Memo data requested is past end of record: The start offset for the memo
read is beyond the last byte of memo data. No memo data is read.
|
8706
| EXB_BAD_MEMONO
| Memo number is not valid: Memo number is 0.
|
8708
| EXB_BAD_AVAIL_LINK
| Memo avail link (in memoAvailBlock) cannot be valid (is 0): availLink is 0,
which is not a valid value. Backup database, then rebuild.
|
8709
| EXB_MEMO_ZERO_SIZE
| Memo data has no size or bytes to size LT bytes to write: BltMemoAdd() or
BltMemoUpdate() is requested to write 0 bytes; or an add was requested to size the memo record
maller than the bytes it was requested to write.
|
8710
| EXB_MEMO_IS_SMALLER
| Memo attempt to shrink but already LTE size: BltMemoUpdate() requested that
a memo record be shrunk but the memo record is already smaller than that size.
|
8712
| EXB_TOO_MANY_MEMOS
| Memo pack, record has more than MAX_MEMO_FIELDS: The built-in BltDataPack()
routine is hard-coded for a maximum of 32 memo fields in a DBF record. The typical record
might have one or two memo fields. The field types recognized as a memo field are 'M', 'B',
and 'G'.
|