Основы проектирования приложений баз данных


         

Наборы данных


Предком всех классов наборов данных является класс TDataSet. Он определяет основу структуры всех наборов данных - массив компонентов типа TField (каждый элемент массива соответствует столбцу таблицы).

Набор данных - это упорядоченная последовательность строк, извлеченных из источника данных. Каждая строка набора данных состоит из полей, указываемых в свойствах класса.

В зависимости от механизма доступа, используемого приложением, базовыми классами набора данных могут быть:

  • TTable, TQuery, TStoredProc - для однозвенных или двухзвенных приложений, использующих машину баз данных BDE. Класс TQuery дополнительно позволяет выполнять параметрические запросы;
  • TClientDataSet - для реализации клиентского набора данных и для многозвенной архитектуры, использующей распределенный доступ;
  • TADODataSet - для приложений, использующих ADO-объекты;
  • TSQLDataSet - для доступа к базе данных посредством dbExpress. Этот класс реализует направленный набор данных, функционирующий по принципу курсора. Для такого набора данных не создается кэш памяти на клиенте, и среди методов доступа возможны только методы Next и First. Редактирование записей в направленном наборе данных возможно только явным выполнением SQL-оператора UPDATE или при установке соединения с клиентским набором данных через провайдера;
  • TSQLTable и TSQLQuery - для доступа к базе данных посредством dbExpress.

На следующей схеме приведена иерархия классов наборов данных библиотеки VCL:


Для определения набора данных необходимо задать следующие свойства:

  • для класса TTable - значения свойств DatabaseName и TableName;
  • для класса TQuery - значение свойства SQL и, возможно, свойства DatabaseName.

Для того чтобы читать данные из таблиц или записывать их в таблицы, набор данных предварительно должен быть открыт.

Открыть набор данных можно одним из следующих способов:

  • установить значение свойства Active набора данных равным True во время выполнения приложения (например, Table1.Active:= True;) или в режиме проектирования в инспекторе объектов;
  • вызвать метод Open (например, Table1.Open;).



Содержание  Назад  Вперед