Набор данных
Перед открытием набора данных необходимо установить тип используемой при редактировании записей блокировки. Для этого применяется свойство
type TADOLockType = (ItUnspecified, ItReadOnly, ItPessimistic, ItOptimistic, ItBatchOptimistic); property LockType: TADOLockType;
ItUnspecified — блокировка задается источником данных, а не компонентом;
ItReadOnly — набор данных откроется в режиме только для чтения;
ItPessimistic — редактируемая запись блокируется на все время редактирования до момента сохранения в хранилище данных;
ItOptimistic — запись блокируется только на время сохранения изменений в хранилище данных;
ItBatchOptimistic — запись блокируется на время сохранения в хранилище данных при вызове метода updateBatch.
Примечание
Для того чтобы установка блокировки сработала, свойство LockType должно быть обязательно модифицировано до открытия набора данных.
Набор данных открывается методом Open и закрывается методом close. Также можно использовать свойство
property Active: Boolean;
Текущее состояние набора данных можно определить свойством
type
TObjectState = (stClosed, stOpen, stConnecting, stExecuting, stretching);
TObjectStates = set of TObjectState;
property RecordsetState: TObjectStates;
Набор данных в компонентах ADO основан на использовании объекта набора записей ADO, прямой доступ к этому объекту возможен при помощи свойства
property Recordset: _Recordset;
Но поскольку все основные методы интерфейсов объекта набора записей ADO перекрыты методами класса, в обычных случаях прямой доступ к объекту вам не понадобится. После обновления набора данных вызывается метод-обработчик
TRecordsetEvent = procedure(DataSet: TCustomADODataSet; const Error: Error;
var EventStatus: TEventStatus) of object; property OnFetchComplete: TRecordsetEvent;
где Error — ссылка на объект ошибки ADO, если она возникла.
Если же набор данных работает в асинхронном режиме, при обновлении вызывается метод-обработчик
TFetchProgressEvent = procedure(DataSet: TCustomADODataSet;
Progress, MaxProgress: Integer;
var EventStatus: TEventStatus) of object;
property OnFetchProgress: TFetchProgressEvent;
где параметр Progress показывает долю выполнения операции.
Вещество и поле не есть что-то отдельное от эфира, также как и человеческое тело не есть что-то отдельное от атомов и молекул его составляющих. Оно и есть эти атомы и молекулы, собранные в определенном порядке. Также и вещество не есть что-то отдельное от элементарных частиц, а оно состоит из них как базовой материи. Также и элементарные частицы состоят из частиц эфира как базовой материи нижнего уровня. Таким образом, всё, что есть во вселенной - это есть эфир. Эфира 100%. Из него состоят элементарные частицы, а из них всё остальное. Подробнее читайте в FAQ по эфирной физике.