Renumber Field

BerkeleyDB

Cause the logical record numbers to be mutable, and change as records are added to and deleted from the database.

Namespace:  BerkeleyDB
Assembly:  libdb_dotnet48 (in libdb_dotnet48.dll) Version: 4.8.24.0

Syntax

C#
public bool Renumber
Visual Basic (Declaration)
Public Renumber As Boolean
Visual C++
public:
bool Renumber

Remarks

For example, the deletion of record number 4 causes records numbered 5 and greater to be renumbered downward by one. If a cursor was positioned to record number 4 before the deletion, it will refer to the new record number 4, if any such record exists, after the deletion. If a cursor was positioned after record number 4 before the deletion, it will be shifted downward one logical record, continuing to refer to the same record as it did before.

Using Put(DatabaseEntry, DatabaseEntry) or Put(DatabaseEntry, DatabaseEntry, UInt32) to create new records will cause the creation of multiple records if the record number is more than one greater than the largest record currently in the database. For example, creating record 28, when record 25 was previously the last record in the database, will create records 26 and 27 as well as 28. Attempts to retrieve records that were created in this manner will throw a KeyEmptyException.

If a created record is not at the end of the database, all records following the new record will be automatically renumbered upward by one. For example, the creation of a new record numbered 8 causes records numbered 8 and greater to be renumbered upward by one. If a cursor was positioned to record number 8 or greater before the insertion, it will be shifted upward one logical record, continuing to refer to the same record as it did before.

For these reasons, concurrent access to a SecondaryRecnoDatabase with this setting specified may be largely meaningless, although it is supported.

If the database already exists, this setting must be the same as the existing database or an exception will be thrown.

See Also