Вкладка RX DBAware. Компонент TRxQuery

   
На этом шаге мы рассмотрим компонент TRxQuery

   
Компонент TRxQuery является наследником компонента TQuery, поэтому обладает
всеми ее свойствами и методами и сохраняет его функциональность. Отличие заключается в наличии свойства
Macros, с помощью которого можно легко и удобно изменять текст SQL-запроса в дизайнере
или во время исполнения. Как известно, TQuery поддерживает динамические (dynamic) запросы,
которые более точно было бы называть параметризуемыми. Для работы с параметрами предназначено свойство
Params. Однако их возможностей часто бывает недостаточно. Самый простой пример - сменить порядок
сортировки (выражение в ORDER BY), или динамически поменять выражение WHERE.

   
Для решения таких задач TRxQuery предлагает свойство Macros и механизм расширения
макроопределений. Макроопределения (Macros) создаются подобно параметрам (Params).
Вы указываете в тексте запроса (свойство SQL) идентификатор, начинающийся со специального
символа - признака макроопределения (свойство MacroChar). После этого макрос с соответствующим
именем появляется в редакторе свойства Macros и доступен во время исполнения с помощью метода
MacroByName. Вы присваиваете значение макросу, и это значение в строковом виде будет подставляться
в текст запроса вместо определения макроса каждый раз при выполнении запроса.

   
Таким образом, чтобы изменить запрос, вам не нужно изменять свойство SQL - достаточно изменить
значение макроса, присутствующего в запросе, и переоткрыть запрос.

Таблица 1. Свойства компонента TRxQuery

Свойство Описание
property Macros: TParams; Когда вы вводите запрос, компонент создает массив Macros для макроопределений вашего SQL-выражения.
Macros является массивом объектов типа TParam, где каждый элемент соответствует макроопределению в запросе.
Первому макроопределению соответствует Macros[0], второму Macros[1] и т.д.
Число макроопределений сообщает свойство MacroCount. Используйте метод MacroByName вместо прямого доступа к
Macros для того, чтобы избежать зависимости от порядка макроопределенй в запросе.
property MacroChar: Char; Свойство указывает символ, который будет интерпретироваться как задание макроса в тексте запроса.
Этот символ используется точно так же, как символ ':' используется для идентификации параметров запроса (Params).
Значение по умолчанию - '%'.
function MacroByName(const Value: string): TParam; Метод возвращает элемент свойства Macros, чье свойство Name совпадает с Value.
Используйте его, чтобы задавать значения макросов для TRxQuery по их именам.

   
На следующем шаге мы рассмотрим компонент TSQLScript.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий