Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование БД в Delphi ВТиП.doc
Скачиваний:
53
Добавлен:
17.03.2016
Размер:
3.62 Mб
Скачать
    1. Компонент tadoDataSet

Компонент TADODataSet обеспечивает доступ к одной или нескольким таблицам БД с помощью запроса типа SELECT. Компонент рассчитан только на возвращение набора данных, поэтому его нельзя использовать для выполнения подмножества операторов DDL. В компоненте есть свойство CommandText, однако в него можно поместить только оператор SELECT.У этого свойства имеется специализированный текстовый редактор, с помощью которого можно сформировать команду. Этот редактор (рисунок 11.13) вызывается щелчком на кнопке с многоточием в строке свойства CommandText инспектора объектов.

В отличие от компонента TADOTable компонент TADODataSet может обращаться не только к одной, но сразу к нескольким таблицам. Ниже показан результат текст запроса к двум таблицам, выполняемого с помощью компонента ADODataSet.

SELECT FirmID, FName, NPayedSum

FROM FIRMS, NAKLS

WHERE FirmID = NFirm

Компонент TADODataSet — единственный компонент-набор, с помощью которого можно установить связь с удаленным источником данных TRDSConnaction при создании трехзвенной архитектуры. Для этого у него определено следующее свойство:

property RDSConnection: TRDSConnection;

Если компонент TADODataSet связан с единственной таблицей, можно воспользоваться его методом GetlndexNames, чтобы получить список всех имен табличных индексов. Например:

ADODataSet1.GetlndexNames(Memo1.Lines) ;

Остальные свойства, методы и события компонент TADODataSet наследует от своих предков TCustomADODataSet и TDataSet.

    1. Компонент tadoTable

Компонент TADOTable является прямым аналогом BDE-компонента ТТаblе. Так же как ТТаblе, он способен получать и обслуживать НД, состоящий из записей единственной физической таблицы БД, имя которой содержит его свойство TableName. Являясь, как и все остальные компоненты-наборы, надстройкой над базовым объектом Command, компонент TADOTable имеет свойство CommandText, которое недоступно программисту. Значение этого свойства у него формируется автоматически по имени связанной таблицы:

Command.CommandString := 'SELECT * FROM TableName';

Здесь TableName — имя связанной таблицы.

Это, однако, не мешает компоненту TADOTable работать в режиме кэшированных изменений (в режиме пакетной обработки). Свойство CommandType базового объекта, связанного с компоненту TADOTable, всегда имеет значение cmdText, так что остается изменить лишь единственное свойство LockType (свойство CursorType у компонента автоматически имеет значение ctKeySet):

ADOTable1.LockType := ltBatchOptimistic;

ADOTable1.Open;

После этого компонент готов к режиму пакетной обработки.

    1. Компонент tadoQuery

В отличие от компонента TADOCommand компонент TADOQuery преимущественно предназначен для получения набора записей из одной или нескольких таблиц БД. На самом деле компонент TADOQuery фактически целиком повторяет функциональность компонента TQuery, так как в него включен специфический метод ExecSQL, с помощью которого компонент может выполнять предложения DDL языка SQL. Сам запрос формируется в свойстве SQL.

Единственным отличием компонента TADOQuery от его BDE-аналога является свойство, с помощью которого программист может узнать или указать максимальное количество обновлений, которое сделано (или разрешается сделать) при выполнении запроса:

property RowsAffected: integer;

Так же как компонент TQuery, компонентTADOQueryимеет свойствоDataSource, позволяющее передать параметры запроса от одного компонента другому.