Для просмотра и редактирования данных в DataSet’е существует понятия выбранных записей. При просмотре значения именно этих записей мы будем видеть, а при редактировании – именно в этих записях будут редактироваться значения.
Текущие выбранные записи DataSet’а хранятся в полях:
FSelectionArray_Int – массив номеров записей;
FSelectionArray_Key – массив значений ключей записей.
Этот список можно модифицировать, вызывая такие методы:
SetSelectedRecord
;
AddSelectedRecord
;
RemoveSelectedRecord
;
SelectRange
.
Также этот список можно модифицировать через свойство DataSet’а RecNo
. Установка этого свойства вызывает метод SetSelectedRecord
.
Просматривать и редактировать данные в DataSet можно, обращаясь полям DataSet’а. Наиболее распространённые варианты получить поле DataSet’а:
Через свойство Fields
, по индексу поля. Обычно используется в цикле, когда нужно перечислить все поля;
Через методы FieldByName
и FindField
. Используется для получения одного поля по его имени. Если поле не найдено, то FindField
возвращает nil, a FieldByName
в этом случае вызывает ошибку.
Получить данные из поля можно через свойства поля As* (AsString, AsBoolean и тому подобное). При этом:
Если DataSet находится в режиме просмотра, то возвращается значение одной из выбранных записей;
Если DataSet находится в режиме редактирования, то:
Если значения данного поля во всех редактируемых записях совпадает, то возвращается это значение;
Иначе возвращается пустое значение, соответствующее возвращаемому типу данных.