Sometimes there is no natural way to group DB items. For these situations, the DB manager allows you to allocate ungrouped items. These items actually belong to special groups which are automatically allocated by the DB manager. The DB manager tries to keep these groups at the right size for optimum efficiency.
When you allocate an ungrouped item, the DB manager allocates an item in one of its "ungrouped groups." If there are no such groups or if all of these groups have too many items already, the DB manager allocates a new "ungrouped" group.
For practical purposes, ungrouped DB items have a single, dword-sized handle. This "handle" is of type
DBGroupAndItem
. The upper word of this is the handle of the ungrouped group for this item; the lower word is the item's item-handle within that group. There are special versions of most database routines for use with ungrouped items. These routines take a
DBGroupAndItem
argument instead of separate group-handle and item-handle arguments. These routines are discussed in Routines for Ungrouped Items. This section also describes macros which combine a group-handle and item-handle into a
DBGroupAndItem
and which break a
DBGroupAndItem
into its constituent parts.