[Overview][Types][Classes][Procedures and functions][Index] | Reference for unit 'BufDataset' (#fcl)

# TDoubleLinkedBufIndex

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Implements an index using a doubly-linked list

## Declaration

Source position: bufdataset.pas line 189

`type TDoubleLinkedBufIndex = class(TBufIndex)`
`public`
`FLastRecBuf: PBufRecLinkItem;`
`FFirstRecBuf: PBufRecLinkItem;`
`FNeedScroll: Boolean;`
`function ScrollBackward; override;` |  | Scrolls the index toward the beginning of the index
`function ScrollForward; override;` |  | Scrolls the index towards the end of the index
`function GetCurrent; override;` |  |
`function ScrollFirst; override;` |  | Scrolls to the first entry in the index
`procedure ScrollLast; override;` |  | Scrolls to the last entry in the index
`function GetRecord(); override;` |  |
`procedure SetToFirstRecord; override;` |  |
`procedure SetToLastRecord; override;` |  |
`procedure StoreCurrentRecord; override;` |  |
`procedure RestoreCurrentRecord; override;` |  |
`function CanScrollForward; override;` |  | Indicates if the index can be scrolled towards the end of the index
`procedure DoScrollForward; override;` |  | Implements actions needed to scroll forward using the index
`procedure StoreCurrentRecIntoBookmark(); override;` |  |
`procedure StoreSpareRecIntoBookmark(); override;` |  |
`procedure GotoBookmark(); override;` |  | Navigates the index to the specified Bookmark
`function CompareBookmarks(); override;` |  |
`function SameBookmarks(); override;` |  | Compares Bookmark values for ordering in the index
`procedure InitialiseIndex; override;` |  | Initializes the index
`procedure InitialiseSpareRecord(); override;` |  | Initializes the spare record in the index
`procedure ReleaseSpareRecord; override;` |  | Releases the spare record in the index
`procedure BeginUpdate; override;` |  |
`procedure AddRecord; override;` |  | Adds a record to the index
`procedure InsertRecordBeforeCurrentRecord(); override;` |  | Inserts a record prior to the current record in the index
`procedure RemoveRecordFromIndex(); override;` |  | Removes the record at the specified Bookmark from the index
`procedure OrderCurrentRecord; override;` |  |
`procedure EndUpdate; override;` |  |
`end;`

## Inheritance

`TDoubleLinkedBufIndex` |  | Implements an index using a doubly-linked list
`TBufIndex` |  | Defines the interface used to implement indexes in TBufDataset
`TObject`

## Description

TDoubleLinkedBufIndex is a TBufIndex descendant that implements an index using a doubly-linked list. Nodes in the doubly-linked list are implemented using the TBufRecLinkItem record type and the PBufRecLinkItem pointer type. TDoubleLinkedBufIndex provides two sentinel nodes that represent the first and last items in the linked list.

TDoubleLinkedBufIndex is the type used to implement the default index ('DEFAULT_ORDER') in TBufDataset.

## See also

TBufIndex |  | Defines the interface used to implement indexes in TBufDataset
TBufRecLinkItem |  | Stores bookmarks to the previous and next records in a linked list
PBufRecLinkItem |  | Pointer to a TBufRecLinkItem type
TBufDataset |  | Implements a database-aware buffered dataset

Documentation generated on: May 14 2021