|
Набор данных
Перед открытием набора данных необходимо
установить тип используемой при редактировании записей
блокировки. Для этого применяется свойство
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
показывает долю выполнения операции.
|