Для просмотра и редактирования данных в 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 находится в режиме редактирования, то:
Если значения данного поля во всех редактируемых записях совпадает, то возвращается это значение;
Иначе возвращается пустое значение, соответствующее возвращаемому типу данных.