ObjectDatabase++ Error Codes

Error Codes are 64bit integers in the form of 0x1XXXXXXXX are ObjectDatabase++ errors with the XXXX matching the details below. Error code in the form of 0x2XXXXXXXX are Windows errors - see Winerror.h for details. Error code in the form of 0x3XXXXXXXX are Linux errors - mostly see asm/errno.h or sys_errlist[XXXXXXXX] for details. UseGetErrorMessagefor more details.

Find Error Value:

NameValueDescription
NO_ERROR0No Error, method call executed correctly.
ODBPP_UNREGISTERED1This error code is returned when the ObjectDatabase++ has no longer a current licence. You must either enter a valid licence through RegisterODBPP or download an updated copy of the library.
FILE_NOT_LOCAL2ObjectDatabase++ is designed as a multi-process, server side embedded database library and as such uses mutexes for concurrency control with a shared memory file for IPC that is not flushed to disk, this prevent two copies of the library interaction into one set of files on a network file server. Therefore ObjectDatabase++ is made to only run on a server with the files locally.
DATABASE_NOT_OPEN3The database needs to be open before any operations can take place, a call to OpenDatabase or CreateDatabase must be called first.
DATABASE_NOT_EXCLUSIVE4For database operations that edit the schema of any table or the control file, the executing transaction must start with BeginTransaction mode set to exclusive.
DATABASE_NOT_EDITABLE5Before any transaction can call any method that edits the database, it must start with BeginTransaction in an editable mode, such as shared or excusive. This error is returned when the transaction mode is set to lock free.
TABLE_NOT_OPEN6This error code is returned when a method is unable to find an open table that matches the given tableID parameter. Make sure that OpenTable is called with the correct table ID before any read corresponding calls for reading or editing of the table.
INVALID_PARAMETER7This error code is a general error code that signifies a parameter of the method is invalid, it has no specific relationship to the exact cause of the error.
INVALID_OPERATION8This error code is a general error code that signifies a method has been called in a wrong context, for example, if the method PutVariableValues is called when the tableID refers to a fixed length table.
INVALID_TABLE_NAME9This table name given to the method is invalid, either because it is already in use or has invalid character or path.
INVALID_TABLE_ID10The tableID valid give to a method is incorrect, either in the tableID parameter of the method or the tableID value in the ClassSchema, because it is in use or in the case of the parameter - the table is not opened.
INVALID_TABLE_LOCK_ORDER11The give table locking order value is already in use, the existing table with the global locking order position must be removed with RemoveTable or changed with SetTableSchema before a table can be allocated with that locking position. Try using the value zero so ObjectDatabase++ is set the next valid value.
INVALID_FIELD_TYPE12When a table is created or edited, ObjectDatabase++ will make sure that all values of the schema are valid and will give this error if the give value for the field type is unknown and current copy of ObjectDatabase++ may need updating, or in the case of PutVariableValues it would suggest that the table file has corrupted.
INVALID_FIELD_ORDER13The given table schema has a fixed field after a variable field. ObjectDatabase++ expects all variable field to be after the fixed fields. This enables the use of structures to access fixed fields.
INVALID_FIELD_POS_IN_INDEX14Within the given table schema, the value given to refer to the underlining field position is out of range.
INVALID_FIELD_TYPE_IN_INDEX15Within the given table schema, the given field is the wrong type for the give index. For example CODBPP::RECT and CODBPP::CUBE are only valid in Spatial Indexed and not in B+-Tree Indexes.
INVALID_FIELD_NAME42All fields should be given a name, just for compatibility reasons.
INVALID_FIELD_LENGTH66If a field requires a certain length, such as the pattern fields, that are a mod 8 byte length.
INVALID_FIELD_MAPPING72If the field mapping in SetTableSchema is invalid.
INVALID_SEGMENT_MODE16Within the given table schema, the given segment mode is invalid, see segments Mode for correct values.
INVALID_SEGMENT_COUNT17Within the given table schema, the given segment count is invalid, this error is caused only by Spatial Indexes since only one field per indexis allowed.
INVALID_SEGMENT_MULTIENTRY61Within the given table schema, an index may only have segments fields from one sub-table (SUB_TABLE.
INVALID_SEARCH_MODE18The CODBPP::Mode operation used in a read operation is invalid, please recheck the value you are supplying and try using with preference the defined enum within the ObjectDatabase++ class.
INVALID_SEARCH_STRING63The token string given to the SearchIndex operation is invalid, please recheck the string you are trying to search with for the correct logical format.
INVALID_INDEX_TYPE19Within the given table schema, the value of an index type is invalid, valid index types are as in IndexType.
INVALID_INDEX_MAX_COUNT20Within the given token list index, the value of the index max object count is too high for any normal meaning. The max object count equals 2 to the power of maxObjects.
INVALID_INDEX_LOCK_ORDER26The lock order index must be either the ObjectID or a B+Tree index.
INVALID_VERSION70Not in current use
INVALID_CONTROL_VERSION21The *.obc file that you are trying to use is either corrupt of the wrong version. You can try adding the table files to a newly create control file or update your version of ObjectDatabase++ library.
INVALID_TABLE_VERSION22The *.obt file that you are trying to use is either corrupt of the wrong version. You can try using SetTableSchema to update the table format or by updating your version of ObjectDatabase++ library if you are using an older version then the file.
INVALID_INDEX_VERSION23The *.obi file that you are trying to use is either corrupt of the wrong version. You can delete the *.obi file associated with the table and search for the first object in the first index while the table is opened in CODBPP::EXCLUSIVEmode, this will trigger ObjectDatabase++ to recreate the index file in the correct version connected with the current version you are using.
INVALID_LOG_VERSION24The *.obl file that you are trying to use is either corrupt of the wrong version. You can delete the *.obl file associated with the control file, opening the control file will trigger ObjectDatabase++ to recreate the log file in the correct version connected with the current version of the library you are using.
INVALID_LOG_POSITION68Possible database synchronise corruption. Should reinitiate database synchronisation.
UNABLE_TO_LOCK_DATABASE25BeginTransaction is unable to gain control of the control file, usually because another transaction is currently executing in exclusive mode.
UNABLE_TO_LOCK_OBJECT27The object required to be lock is currently lock by another transaction.
UNABLE_TO_LOCK_TRANSACTION67If the transaction needs to complete a transaction before moving forward, but another process is already attempting to complete it.
NOT_FOUND_TABLE30The requested table was not found in the control file.
NOT_FOUND_OBJECT31The requested object was not found in the table.
NOT_FOUND_INDEX_KEY32The requested index value was not found. This value is also returned when a search request asks for a relative index compared to the current object held in the table.
NOT_FOUND_LOG_ENTRY33The log entry was not found, if this error is recursive try deleting the current log file.
ALREADY_IN_USE_DATABASE34When the database is already open, ObjectDatabase++ will not create or open another until the original control file is closed.
ALREADY_IN_USE_TABLE35When the table is already open, ObjectDatabase++ will not create or open another.
ALREADY_IN_USE_OBJECT36DeleteObject is unable to perform its operation on an object that has previously been locked by AddObject or by itself.
ALREADY_IN_USE_INDEX_KEY37This error is returned when the object you are trying to add to a table has the same index value as an object already within the table. If this error is incorrect and caused by a corrupted index file, try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
ALREADY_IN_USE_LOG_KEY38A strange internal error.
NO_VALID_OBJECT39The table handle does not currently contain an object that is required for the correct performance to the called method.
NO_VALID_SEARCH_TREE40Unable to find an object since the search index was created on another index, try using SearchIndex once again on the required index.
TRANSACTION_UNSAVED41Before any method can edited any table schema, the database must be in a neutral state, this can be done by calling AbortTransaction or CommitTransaction and releasing all object locks.
TRANSACTION_NOT_FOUND71Unable to complete transaction, as it was not found.
CAST_UNAVAILABLE43SetTableSchema is currently unable to cast one field type to the required field type.
INCONSISTENT_INDEX44This error is returned when the index file is no longer consistence with the table file. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
INCONSISTENT_THREAD28All transactions must be started and completed on the same thread as memory is allocated on the local heap, requiring each thread to have its own CODBPP handle.
CORRUPT_OBJECT_LENGTH45The object length is too long and does not match the schema format.
CORRUPT_OBJECT_FORMAT46The object format has been corrupted.
CORRUPT_PARAMETER_FORMAT73The object format has been corrupted.
CORRUPT_DELETE_ID_LIST47The table file has been corrupted. Try rebuilding table with SetTableSchema.
CORRUPT_FREE_SPACE_LIST48The files free space list has been corrupted, this can be with in the index, log or table files. Try rebuilding table with SetTableSchema.
CORRUPT_B_TREE_FIXED_LEAF49Depreciated.
CORRUPT_B_TREE_VAR_LEAF50A variable leaf within an index file has been corrupted. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_T_LIST_BUCKET62A bucket page within a token index has been corrupted. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_B_TREE51This error is returned when a B+-Tree index has been corrupted. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_S_TREE52This error is returned when a spatial index has been corrupted. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_T_TREE64This error is returned when a temporal index has been corrupted. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_PATTERN65This error is returned when a spatial pattern index has been corrupted. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_T_LIST53This error is returned when a Token list index has been corrupted. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_CONTROL_FILE54This is a general error that is return when a non-specific error has occurred while reading a control file *.odc.
CORRUPT_TABLE_FILE55This is a general error that is return when a non-specific error has occurred while reading a table file *.odt. Try rebuilding table file by opening the table with SetTableSchema.
CORRUPT_LOG_FILE56This is a general error that is return when a non-specific error has occurred while reading a log file *.odl. Try deleting the log file if this error reappears.
CORRUPT_LOG_ENTRY69Possible database synchronise corruption. Should reinitiate database synchronisation.
CORRUPT_LOG_FILE57This is a general error that is return when a non-specific error has occurred while reading an index file *.odi. Try deleting the index file and then searching the for the first object in the first index with the database opened in CODBPP::EXCLUSIVE mode, this will trigger ObjectDatabase++ to rebuild the index file.
CORRUPT_MEMORY_FILE58This is a general error that is return when a non-specific error has occurred while reading the run time memory file *.odm. Try deleting the file.
INTERNAL_ERROR59This is a general error that is return when a non-specific error has occurred from an internal source.
AES_ERROR60Error with AES encryption.