Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Компоненты доступа к данным




Перечень и назначение компонентов работы по технологии ADO мы приводили в начале главы. Большинство из них имеет аналоги компонентов в технологиях BDE и dbExpress (табл. 18.1). В этой таблице компоненты, используемые в технологии dbExpress, аналогами можно назвать достаточно условно, т. к. большинство из них поддерживают однонаправленные наборы данных.

Таблица 18.1. Соответствие компонентов в технологиях ADO, dbExpress и BDE

Компонент ADO Компонент dbExpress Компонент BDE
ADOTable SQLTable Table
ADOQuery SQLQuery Query
ADOStoredProc SQLStoredProc StoredProc
ADOConnection SQLConnection Database
ADODataSet SQLDataSet, SQLSimpleDataSet Table, Query, StoredProc
ADOCommand
RDSConnection

Стандартные компоненты доступа к данным в ADO наследуют механизм доступа от родительского класса TCustomADODataSet. Поэтому важнейшие свойства и методы этого класса во многом определяют поведение компонентов доступа к данным в ADO. Коротко охарактеризуем их.

К числу основных свойств названного класса можно отнести свойства, устанавливающие параметры обмена с хранилищем данных. Значения их нужно задать до открытия набора данных.

Тип блокировки записей в наборе данных определяет свойство LockType типа TADOLockType, который описан так:

type TADOLockType = (ltUnspecified, ltReadOnly, ltPessimistic, ltOptimistic,
ltBatchOptimistic);

Здесь, например:

r ltUnspecified — блокировка задается источником данных;

r ltReadOnly — набор данных открывается в режиме только для чтения;

r ltPessimistic — блокировка на время редактирования до момента подтверждения.

Как отмечалось, местоположение курсора задает свойство CursorLocation (см. предыдущий подраздел). При работе с клиентским курсором важную роль играет следующее свойство.

Передаваемые серверу данные определяет свойство MarshalOptions типа TMarshalOption, который описан так:

type TMarshalOption = (moMarshalAll, moMarshalModifiedOnly);

Здесь:

r moMarshalAll — возврат всех записей локального набора данных серверу;

r moMarshalModifiedOnly — возврат только измененных записей.

Тип курсора определяет свойство CursorType типа TCursorType, который описан так:

type TCursorType = (ctUnspecified, ctOpenForwardOnly,
ctKeyset,ctDynamic,ctStatic);

Здесь, например:

r ctUnspecified — тип курсора не задан и определяется возможностями источника данных;

r сtOpenForwardOnly — однонаправленный курсор, используемый для одиночного прохода по всем записям;

r ctKeyset — двунаправленный курсор, не отображающий добавленные или удаленные другими пользователями записи;

r ctStatic — двунаправленный курсор, не учитывающий изменения записей другими пользователями.

Набор данных может быть открыт с помощью свойства Active или метода Open. На стороне клиента записи из набора данных хранятся в буфере, размер которого может быть получен с помощью свойства CacheSize типа Integer.

При необходимости с помощью свойства BlockReadSize типа Integer можно организовать передачу записей в виде блоков. Кроме того, с помощью свойства MaxRecords типа Integer можно ограничить размер набора данных. По умолчанию блочная пересылка не используется, а число записей в наборе данных не ограничено.

Текущее состояние записи набора данных определяет свойство RecordStatus типа TrecordStatusSet, который описан так:

type TRecordStatus = (rsOK, rsNew, rsModified, rsDeleted, rsUnmodified,
rsInvalid, rsMultipleChanges, rsPendingChanges, rsCanceled,
rsCantRelease, rsConcurrencyViolation, rsIntegrityViolation,
rsMaxChangesExceeded, rsObjectOpen, rsOutOfMemory, rsPermissionDenied,
rsSchemaViolation, rsDBDeleted);

Здесь, например:

r rsOK — запись успешно изменена;

r rsNew — новая запись вставлена;

r rsModified — запись изменена;

r rsDeleted — запись удалена;

r rsUnmodified — запись осталась без изменений.

Дадим сравнительно развернутую характеристику компонентам, используемым в технологии ADO для доступа к данным.

Доступ к таблицам

Для обеспечения доступа к таблицам хранилищ данных по технологии ADO служит компонент ADOTable. Для установления соединения с хранилищем данных этого компонента через провайдеры ADO служит свойство ConnectionString или Connection, как описано ранее. Для управления набором данных таблицы в приложение включают компонент источника данных DataSource. При этом свойству DataSet этого компонента в качестве значения задается имя компонента ADOTable. Для отображения данных таблицы к источнику данных подключаются различные компоненты отображения, к примеру, DBGrid.

После установления связи компонента ADOTable с хранилищем данных с помощью свойства TableName типа WideString задается имя таблицы. Не все провайдеры ADO допускают непосредственный доступ к таблицам, поэтому может потребоваться доступ с помощью SQL-запроса. Вариант доступа к данным таблицы определяет свойство TableDirect типа Boolean. Если оно имеет значение False (по умолчанию), то компонент ADOTable автоматически генерирует SQL-запрос для доступа к таблице, в противном случае выполняется непосредственный доступ к данным таблицы.

Рассматриваемый нами компонент по своим возможностям и технике работы с ним во многом схож с компонентом Table. Здесь также с помощью редактора полей можно задавать свойства отдельных полей. При этом имеется ограничение, состоящее в том, что в компонентах ADO нельзя работать со словарями. Поэтому свойства полей требуется задавать вручную. Кроме того, у драйверов ADO имеются ограничения по работе с отдельными типами полей, в частности, с графическими.

Программирование действий по работе с хранилищем данных с помощью рассматриваемого компонента используются аналогичные средства, как и в случае компонента Table. В частности, для навигации по табличному набору данных используются методы First, Last, Next и Prior. Для поиска записей используются методы Find, Seek и Locate.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных