Return codes


< Prev  TOC  Next >

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.

Multi-access return codes (8400 to 8499)
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.

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'.



All content Copyright © 1999 Cornel Huth. All rights reserved.