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. |
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. |
rc | Codename | Explanation |
---|---|---|
8401
| EXB_BAD_LOCK_MODE
| Lock mode not valid: DOS/Win16 cannot use shared or atomic locks;
lock mode may only be exclusive. See also, EXB_ATOMIC_LOCK_NOT_SUPPORTED .
|
8404
| EXB_NOTHING_TO_UNLOCK
| No outstanding full locks: An unlock call was made without any locks active. |
8405
| EXB_ALREADY_FULL_LOCK
| Already have a full lock so cannot record lock/header lock: Already have a full lock so cannot use BltLockDataHeader(), and cannot lock individual records. |
8406
| EXB_ALREADY_HDR_LOCK
| Already have a hdr lock so cannot full lock: Already have the data header locked so cannot full lock the data file. |
8407
| EXB_DIFFERENT_LOCK_MODE
| Current lock does not match new lock mode (shared/exclusive): A structure.handle can be locked more than once, but each lock request must be the same type: shared or exclusive (unless atomic relocking is specified). |
8408
| EXB_SAME_LOCK_MODE
| Current lock same as new lock mode (relock): If an atomic relock was requested then the new lock mode must be the opposite of the current lock mode. For example, if the current mode is LOCK_MODE_EXCLUSIVE, the new mode must be LOCK_MODE_SHARED. |
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 .
|
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(). |
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'. |