Programming: Delphi
Иллюстрированный самоучитель по Delphi 7 для профессионалов
Класс TCustomSQLDataSet
Так как общим предком компонентов dbExpress объявлен
класс TDataSet, то задачей класса
TCustomSQLDataSet является не столько внесение новой
функциональности, сколько корректное ограничение возможностей, заложенных в
TDataSet. Непосредственно в приложениях этот класс не используется, но информация о нем полезна для понимания других компонентов dbExpress и для создания собственных компонентов на его основе.
Класс TCustomSQLDataSet является общим предком для компонентов, инкапсулирующих запросы, таблицы и хранимые процедуры. Для их поддержки используются свойства:
- TSQLCommandType = (ctQuery, ctTable,
ctStoredProc); property CommandType:
TSQLCommandType;
определяющее тип команды, направляемой серверу;
- property CoramandText: string;
содержащее текст команды.
Если серверу передается запрос SQL (CommandType = ctQuery),
свойство CoramandText содержит текст запроса. Если это команда на получение таблицы, свойство
CommandText содержит имя таблицы, а далее с использованием имени таблицы создается запрос SQL на получение всех полей этой таблицы. Если необходимо выполнить процедуру, свойство
CommandText содержит имя этой процедуры.
Текст команды, которая реально передается на сервер для выполнения, содержится в защищенном свойстве
Для использования в табличном представлении существует свойство
определяющее порядок сортировки записей табличного набора данных. Свойство должно содержать список полей, разделенных точкой с запятой. Это свойство используется для создания выражения ORDER BY для генерируемой команды.
Для обработки исключительных ситуаций в классах — потомках может быть использовано защищенное свойство
которое возвращает текст последней ошибки dbExpress.
Для ускорения работы набора данных можно отключить получение от сервера метаданных об объекте запроса (таблицы, процедуры, полей, индексов), которые обычно направляются клиенту вместе с результатом запроса. Для этого свойству
присваивается значение True.
Однако пользоваться им нужно осторожно, т. к. для некоторых видов команд метаданные необходимы (это операции с использованием индексов).
Разработчик может управлять процессом получения метаданных. Для этого необходимо заполнить структуру
TSchemaType = (stNoSchema, stTables, stSysTables, stProcedures,
stColumns, stProcedureParams, stIndexes);
TSchemalnfo = record
EType : TSchemaType;
ObjectName : String;
Pattern : String;
end;
которая доступна через защищенное свойство
а значит, может использоваться только при создании новых компонентов на
основе TCustomSQLDataSet.
Параметр FTуре определяет тип требуемой информации. Параметр
ObjectName — имя таблицы или хранимой процедуры, если в параметре
FType указаны поля, индексы или параметры процедур.
Внимание
Если компонент должен получать результирующий
набор данных, параметр FType должен
обязательно иметь значение stNoSchema.
При изменении значения свойства CommandText
это условие выполняется автоматически.
Параметр Pattern определяет, какие ограничения накладываются на метаданные. Он содержит символьную маску, подобную свойству
Mask многих визуальных компонентов. Последовательность символов маски обозначается символом %, единичный символ определяется символом
.
При необходимости использовать управляющие символы в качестве маскирующих, применяются двойные символы
%% и _.
Подобно свойству Tag
класса TComponent, класс TCustomSQLDataSet
имеет строковое свойство
в котором разработчик может хранить любую служебную информацию. По существу, это просто лишняя строковая переменная, которую нет необходимости объявлять.
Назад | Оглавление | Вперёд
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.
© 2005
|