Набор данных
Набор данных
Любое приложение баз данных должно уметь выполнять как минимум две операции. Во-первых, иметь информацию о местонахождении базы данных, подключаться к ней и считывать имеющуюся в таблицах БД информацию. Эта функция в значительной степени зависит от реализации конкретной технологии доступа к данным.Абстрактный набор данных
В основе иерархии классов, обеспечивающих функционирование наборов данных в приложениях баз данных Delphi, лежит класс TDataSet. Хотя он почти не содержит методов, реально обеспечивающих работоспособность основных механизмов набора данных, тем не менее его значение трудно переоценить.Стандартные компоненты. Компонент таблицы.
Внимательный читатель заметил, что на рис. 12.1 набор компонентов для каждой из представленных технологий доступа к данным примерно одинаков. Везде есть компонент, инкапсулирующий табличные функции, компонент запроса SQL и компонент хранимой процедуры.Компонент запроса
Компонент запроса предназначен для создания запроса SQL, подготовки его параметров, передачи запроса на сервер БД и представления результата запроса в наборе данных. При этом набор данных может быть редактируемым или нет.Компонент хранимой процедуры
Компонент хранимой процедуры предназначен для определения процедуры, установки ее параметров, выполнения процедуры и возвращения результатов в компонент. | В зависимости от выбранной технологии доступа к данным, каждый компонент хранимой процедуры имеет собственный способ соединения с сервером.Индексы в наборе данных. Механизм подключения индексов.
Важнейшей проблемой для любой БД является достижение максимальной производительности и ее сохранение при дальнейшем увеличении объемов хранимых данных. Использование индексов позволяет решить эту задачу.Список описаний индексов
Информация об индексах набора данных содержится в свойстве класса TDataSet: | property IndexDefs: TindexDefs; | В нем для каждого индекса создается структура TindexDef. Доступ к информации об индексах осуществляется через свойство: | property Items[Index: Integer]: TindexDef; default;Описание индекса. Использование описаний индексов.
Параметры каждого индекса набора данных представлены в классе TindexDef, а их совокупность для набора данных содержится в свойстве IndexDefs класса TDataSet. | Свойство: | property Name: String; | Определяет название индекса. | Список всех полей индекса содержится в свойстве: | property Fields: String;Параметры запросов и хранимых процедур
Свойство Params представляет собой набор изменяемых параметров запроса или хранимой процедуры, а также набор объектов TParam, инкапсулирующих отдельные параметры. | Рассмотрим следующий запрос SQL: | SELECT SaleDat, OrderNo | FROM Orders | WHERE SaleDat >= '01.08.2001' AND SaleDat <= '31.08.2001' | В нем осуществляется отбор номеров заказов, сделанных в августе 2001 года.Класс TParams
Класс TParams представляет собой список параметров. | Доступ к элементам списка возможен через индексированное свойство: | property Items[Index: Word]: TParam; | А к значениям параметров – через свойство: | property ParamValues[const ParamName: String]: Variant;Класс TParam
Класс TParam инкапсулирует свойства отдельного параметра. Имя параметра определяется свойством: | property Name: String; | Тип данных параметра задает свойство: | property DataType: TFieldType; | Тип данных параметра и связанного поля должны совпадать.Состояния набора данных
В процессе своего функционирования (от открытия методом Open и до закрытия методом close) набор данных может выполнять самые разнообразные операции. Можно просто перемещаться по записям, можно редактировать данные и удалять записи, можно проводить поиск по различным параметрам и т. д.