Параметры запросов и хранимых процедур
Параметры запросов и хранимых процедур
Свойство Params представляет собой набор изменяемых параметров запроса или хранимой процедуры, а также набор объектов TParam, инкапсулирующих отдельные параметры.
Рассмотрим следующий запрос SQL:
SELECT SaleDat, OrderNo
FROM Orders
WHERE SaleDat >= '01.08.2001' AND SaleDat <= '31.08.2001'
В нем осуществляется отбор номеров заказов, сделанных в августе 2001 года. Теперь вполне естественно было бы предположить, что пользователю может понадобиться получить подобный отчет за другой месяц или за первые десять дней августа.
В этом случае можно поступить так:
procedure TForml.FormCreate(Sender: TObject);
begin
with Queryl do
begin
SQL[0] := 'SELECT PartDat, ItemNo, ItemCount, InputPrice';
SQL[1] := 'FROM Parts';
SQL[2] := 'WHERE PartDat>= "01.08.2001" AND PartDat<=" 31. 08 . 2001 ''';
end;
end;
procedure TForml.RunBtnClick(Sender: TObject);
begin
with Queryl do
begin
if Active then Close;
SQL[2] := 'WHERE PartDat>= '+chr(39)+DatelEdit.Text+chr(39)+
AND PartDat<='+chr(39)+Date2Edit.Text+chr(39);
Open;
end;
end;
При создании формы в методе FormCreate задается текст запроса. Для этого используется свойство SQL. При щелчке на кнопке RunBtn, в соответствии с заданными в однострочных редакторах DatelEdit и Date2Edit датах, изменяется текст запроса. Метод FormCreate приведен только для того, чтобы обозначить первоначальный текст запроса, этот текст вполне можно задать в свойстве SQL.
Для решения подобных задач как раз и используются параметры. В этом случае текст запроса будет выглядеть следующим образом:
SELECT PartDat, ItemNo, ItemCount, InputPrice
FROM Parts
WHERE PartDat>= :PD1 AND PartDat<= :PD2
Двоеточие перед именами PD1 и PD2 означает, что это параметры. Имя параметра выбирается произвольно. В списке свойства Params первым идет тот параметр, который расположен первым по тексту запросу.
После ввода в свойстве SQL текста запроса для каждого параметра автоматически создается объект TParam. Эти объекты доступны в специализированном редакторе, который вызывается при щелчке на кнопке свойства Params в Инспекторе объектов (Рисунок 12.2). Для каждого параметра требуется установить тип данных, который должен согласовываться с типом данных соответствующего поля.