
Сейчас мы поговорим о том, как создать и правильно использовать Parameterized Queries...
Каким обазом мы передать можем саму переменную в наш запрос?
Для этого необходимо создать некий запрос, который использует именно переменную.
Select Test."FName", Test."Salary Of Employee"
From Test
Where Test."Salary of Employee" > :val
Важно: В том случае, когда Вы всего-навсего пишете имя самого поля как, к примеру, "Salary of Employee", есть шанс увидеть ошибку "Capability Not Supported". Потому что быть должно так Test."Salary of Employee".
В данном случае имя самой переменной именно "val", но ведь это быть может вообще любое иное .
Потом необходимо переходить уже к свойству по имени TQuery's params и ставить параметр "val" только в самой зависимости от надобного типа. В представленном примере используется именно тип integer.
Далее надобно сделать код, который устанавливает само значение нужного параметра. Для этого задания значения мы пользоватся будем только компонентом под названием TEdit.
procedure TForm1.Button1Click(Sender: TObject);
begin
with Query1 do
begin
Close;
ParamByName('val').AsInteger := StrToInt(Edit1.Text);
Open;
end;
end;
ВАЖНО: желательно именно в качестве меры предосторожности данный код поставить в самом блоке try..except.
Когда в собственном запросе желаете использовать ключевое слово под названием LIKE, то есть возможность сделать это таким образом:
ВАЖНО: Представленный ниже код использует саму таблицу юзера, которая стоит в самом каталоге \delphi\demos\data. Еще также можно пользоватся самим псевдонимом DBDEMOS.
Код SQL для свойства TQuery.SQL:
SELECT * FROM CUSTOMER
WHERE Company LIKE :CompanyName
Код Delphi:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Query1 do
begin
Close;
ParamByName('CompanyName').AsString := Edit1.Text + '%';
Open;
end;
end;
Идентичный метод передачи самого параметра (с использованием именно ParamByName) - params[TheParameterNumber].
Давайте посмотрим как выглядит такой способ:
ParamByName('CompanyName').AsString := Edit1.Text + '%';
либо же, как альтернатива:
Params[0].AsString := Edit1.Text + '%';
Хитрость представленного шаблона - в интересном знаке процента в самом конце представленного параметра параметра.
Все...
Спонсор поста: имеете желание купить участки в подмосковье, дачи или котеджи? Различные земельные участки продажа частные объявления на интернет-ресурсе irr.ru/real-estate/ удовлетворят вкусы даже самых изысканных покупателей!