Свойство SQL компонента TQuery доступно во время выполнения программы и его можно динамически изменять в зависимости от действий пользователя, например так:
if {условие} then begin
Query1.Close;
//или Query1.Active := FALSE;
Query1.SQL.Text := ‘SELECT * FROM db_table’;
Query1.Open;
//или Query1.Active := TRUE;
else
{. . .}
Помимо указанного способа, управлять поведением компонента TQuery во время выполнения программы можно с помощью т.н. объектов-параметров (класс TParam). Для добавления таких объектов к приложению нужно в окне “Object TreeView” развернуть коллекции компонента TQuery и щелкнуть правой кнопкой мыши по коллекции Params и выбрать пункт меню “Add Item”. После этого будет создан новый компонент класса TParam. Выделив его мышью в окне “Object Inspector” можно будет настроить его свойства, из которых наиболее полезными являются:
После создания объектов-параметров имеет смысл изменить SQL запрос, содержащийся в свойстве SQL компонента Query1:
SELECT num, types.tip_name, price
FROM rooms INNER JOIN types ON (types.tip = rooms.tip)
WHERE (rooms.tip = :ROOM_TYPE) AND (price = :ROOM_PRICE);
При использовании имен объектов-параметров в запросах, их имена должны предваряться символом двоеточия (:). Теперь, программно изменяя во время выполнения приложения значения, содержащиеся в свойстве Value компонентов TParam можно управлять поведением компонента TQuery, не изменяя его свойства SQL.
Чтобы получить доступ к компонентам TParam программно во время выполнения приложения, можно воспользоваться методом класса TQuery ParamByName, возвращающим ссылку на объект TParam с указанным в качестве параметра метода именем:
Query1.ParamByName(‘ROOM_TYPE’).AsInteger := 2;
Класс TParam имеет набор методов для обращения к значению, хранящемуся в его свойстве Value: AsBCD, AsBoolean, АsByte, AsDate, AsDateTime, AsCurrency, AsFloat, AsInteger, AsSmallInt, AsMemo, AsString, AsTime, AsWord. С помощью этих методов можно обращаться к значению параметра, как к переменной нужного типа.
Так же к объектам-параметрам компонента TQuery можно обращаться через его свойство Params, имеющее тип TParams и являющееся по сути массивом объектов типа TParam. Среди методов и свойств класса TParams стоит отметить следующие:
o AddParam(Value: TParam) – добавить существующий объект-параметр в массив параметров;
o CreateParam(FldType: TFieldType; const ParamName: string; ParamType: TParamType): TParam – создать новый объект-параметр и добавить его в массив параметров;
o RemoveParam(Value: TParam) – удалить существующий объект-параметр из массива и освободить занимаемую им память;
o Items[Index: Word]: TParam – массив объектов-параметров, с помощью которого можно получить доступ к любому из них через его индекс;
o Count: Integer – количество объектов-параметров в массиве.
Для управления отображением информации, получаемой из компонента TQuery, в сетке TDBGrig предусмотрена возможность работы с объектами-полями (TField), подобно TTable. Различия заключаются в том, что объекты-поля у TTable создаются на стадии проектирования с помощью мастера, т.к. набор полей, возвращаемых TTable известен заранее, а управление объектами-полями у TQuery необходимо выполнять во время работы приложения.
Для управления объектами-полями в классе TQuery предусмотрены следующие свойства и методы:
o Fields: TFields – коллекция объектов-полей, представляет собой объект класса TFields;
o FieldCount: Integer – количество объектов полей, ассоциированных с набором данных, возвращаемых классом TQuery;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.