Aug 27

Немного о Parameterized Queries

Сейчас мы поговорим о том, как создать и правильно использовать  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/ удовлетворят вкусы даже самых изысканных покупателей!



Поделитесь вашими мыслями

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>