Так как общим предком компонентов dbExpress объявлен класс TDataSet, то задачей класса TQistomSQLDataSet является не столько внесение новой функциональности, сколько корректное ограничение возможностей, заложенных в TDataSet. Непосредственно в приложениях этот класс не используется, но информация о нем полезна для понимания других компонентов dbExpress и для создания собственных компонентов на его основе.

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

□
TSQLCommandType = {ctQuery, ctTable, ctStoredProc);
property CommandType: TSQLCommandType;
определяющее тип команды, направляемой серверу;

О property CommandText: string; содержащее текст команды.

Если серверу передается запрос SQL (CornmandType = ctQuery), свойство ConmiandText содержит текст запроса. Если это команда на получение таблицы, свойство ConmiandText содержит имя таблицы, а далее с использованием имени таблицы создается запрос SQL на получение всех полей этой таблицы. Если необходимо выполнить процедуру, свойство (ZbrnniancTText содержит имя этой процедуры.

Текст команды, которая реально передается на сервер для выполнения, содержится в защищенном свойстве

property NativeCommand: string;

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

property SortFieldNames: string;

определяющее порядок сортировки записей табличного набора данных. Свойство должно содержать список полей, разделенных точкой с запятой. Это свойство используется для создания выражения ORDER BY ДЛЯ генерируемой команды.

Для обработки исключительных ситуаций в классах - потомках может быть использовано защищенное свойство

property LastError: string;

которое возвращает текст последней ошибки dbExpress.

Для ускорения работы набора данных можно отключить получение от сервера метаданных об объекте запроса (таблицы, процедуры, полей, индексов), которые обычно направляются клиенту вместе с результатом запроса. Для этого свойству

property NoMetadata: Boolean; присваивается значение True.

Однако пользоваться им нужно осторожно, т. к. для некоторых видов команд метаданные необходимы (это операции с использованием индексов).

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

TSchernaTypa = (stNoSchema, stTables, stSysTables, stProcedures, stColumns, stPrcceorireBararns, stlndexes) ; TSchemalnfo = record

FType : TSchemaType;
ObjectName : String;
Pattern : String;
end;

которая доступна через защищенное свойство

property Schemalnfo: TSQLSchemalnfо;

а значит, может использоваться только при создании новых компонентов на

ОСНОВе TCustomSQLDataSet.

Параметр FType определяет тип требуемой информации. Параметр ObjectName - имя таблицы или хранимой процедуры, если в параметре FType указаны поля, индексы или параметры процедур.

Если компонент должен получать результирующий набор данных, параметр FType должен обязательно иметь значение stNoSchema. При изменении значения свойства CommandTextoToyanoBHe выполняется автоматически.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Июнь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс