В таблице приведены компоненты, используемые в технологии ADO, аналогами можно назвать достаточно условно, так как большинство из них поддерживают однонаправленные наборы данных.
Соответствие компонентов в технологиях ADO, dbExpress и BDE
Компонент ADO | Компонент dbExpress | Компонент BDE |
---|---|---|
ADOTable | SQLTable | Table |
ADOQuery | SQLQuery | Query |
ADOStoredProc | SQLStoredProc | StoredProc |
ADOConnection | SQLConneсtion | Database |
ADODataSet | SQLDataSet, SQLSimpleDataSet | Table, Query, StoredProc |
ADOCommand | ||
RDSConnection |
Стандартные компоненты в C++ Builder доступа к данным БД по технологии ADO (ADODataSet, ADOTable, ADOQuery, ADOStoredProc) наследуют механизм доступа от родительского класса TCustomADODataSet. Основные свойства и методы данного класса во многом определяют поведение компонентов доступа к БД в ADO. К числу основных свойств TCustomADODataSet можно отнести свойства, которые способны устанавливать параметры обмена с хранилищем данных. Необходимо до открытия набора данных задавать параметры.
Свойство LockType
Свойство LockType типа TADOLockType определяет тип блокировки записей в БД и имеет следующую структуру:
enum TADOLockType { ltUnspecified, ltReadOnly, ltPessimistic, ltCptimistic, ltBatchOptimistic };
Параметры LockType
- ltunspecified – осуществляет блокировку через источник данных.
- ltReadoniy – открывает базу данных только в режиме для чтения.
- ltPessimistic – осуществляет блокировку на время редактирования.
Свойство Marshaioptions
Свойство Marshaioptions типа TMarshaioption играет важную роль при работе с клиентским курсором, которое передает данные серверу и имеет следующую структуру:
enum TMarshalOption { moMarshalAll, moMarshalModifiedOnly };
Параметры Marshaioptions
- moMarshalAll – возвращает все записи локального набора данных серверу.
- moMarshalModifiedOnly – возвращает только измененные записи.
Свойство CursorType
Определяет тип курсора и имеет следующую структуру:
enum TCursorType { ctUnspecified, ctOpenForwardOnly, ctKeyset, ctDynamic, ctStatic };
Параметры CursorType
- ctUnspecified – тип курсора не задан и определяется возможностями источника данных.
- ctOpenForwardOnly – однонаправленный курсор, который используется для одиночного прохода по всем записям.
- ctKeyset – двунаправленный курсор, который не отображает записи, добавленные или удаленные другими пользователями.
- ctStatic – двунаправленный курсор, который не учитывает изменения записей другими пользователями.
Свойство RecordStatus
По умолчанию блочная пересылка выключена, а число записей в БД не ограничено. Так, текущее состояние записи в БД определяет свойство RecordStatus типа TrecordStatusSet, имеющее следующую структуру:
enum TRecordStatus { rsOK, rsNew, rsModified, rsDeleted, rsUnmodified, rsinvalid, rsMultipleChanges, rsPendingChanges, rsCanceled, rsCantRelease, rsConcurrencyViolation, rsIntegrityViolation, rsMaxChangesExceeded, rsObjectOpen, rsOutOfMemory, rsPermissionDenied, rsSchemaViolation, rsDBDeleted };
typedef Set<TRecordStatus, rsOK, rsDBDeleted> TRecordStatusSet;
Параметры RecordStatus
- rsOK – запись успешно изменена.
- rsNew – новая запись добавлена.
- rsModified – запись изменена.
- rsDeleted – запись удалена.
- rsUnmodified – запись осталась без изменений.
Остальные свойства
- CursorLocation – задает местоположение курсора.
- Active или метода Open – открывает базу данных для чтения или редактирования.
- CacheSize типа Integer – получает размер буфера, в котором хранятся записи из набора данных от клиента.
- BlockReadSize типа Integer – передает записи в виде блоков.
- MaxRecords типа Integer – ограничивает размер набора данных.