64
end;
10.1.3. Свойство Params
Этого должно быть достаточно для пользователя, знающего SQL. Тем не
менее, большинство пользователей не знает этого языка. Итак, ваша работа как
разработчика заключается в предоставлении интерфейса и создании SQL-запроса. В
Delphi, для создания SQL-запроса на лету можно использовать динамические
запросы. Динамические запросы допускают использование параметров. Для
определения параметра в запросе используется двоеточие (:), за которым следует
имя параметра. Ниже приведе пример SQL-запроса с использованием
динамического параметра:
SELECT * FROM Employee
WHERE Salary = :Salary
Если вам нужно протестировать, или установить для параметра значение по
умолчанию, выберите свойство Params объекта Query1. Щелкните на кнопке '...'.
Должен появиться диалог настройки параметров. Добавьте параметр Salary. Затем в
выпадающем списке типов данных выберите Integer. Для того, чтобы задать
значение по умолчанию, введите нужное значение в поле редактирования "Value".
Для изменения SQL-запроса во время выполнения приложения, параметры
необходимо связать (bind). Параметры могут изменяться, запрос выполняться
повторно, а данные обновляться. Для непосредственного редактирования значения
параметра используется свойство Params или метод ParamByName. Свойство Params
представляет из себя массив TParams. Поэтому для получения доступа к параметру,
необходимо указать его индекс. Для примера,
Query1.Params[0].asInteger := StrToInt(Edit1.Text);
Свойство asInteger читает данные как тип Integer (название говорит само за
себя). Это не обязательно должно указывать на то, что поле имеет тип Integer.
Например, если тип поля VARCHAR(10), Delphi осуществит преобразование
данных. Так, приведенный выше пример мог бы быть записан таким образом:
Query1.Params[0].asString := Edit1.Text;
Если вместо номера индекса вы хотели бы использовать имя параметра, то
воспользуйтесь методом ParamByName. Данный метод возвращает объект TParam с
заданным именем. Например:
Query1.ParamByName(‘Salary’).asInteger := StrToInt(Edit1.Text);
Обратите внимание на процедуру, первым делом подготовливающую запрос.
При вызове метода Prepare, Delphi посылает SQL запрос на удаленный сервер.
Сервер выполняет грамматический разбор и оптимизацию запроса. Преимущество
такой подготовки запроса состоит в его предварительном разборе и оптимизации.
Альтернативой здесь может служить подготовка сервером запроса при каждом его
выполнении. Как только запрос подготовлен, подставляются необходимые новые
параметры, и запрос выполняется.
Способ подключения TQuery к TTable - через TDataSource. Есть два основных
способа сделать это. Во-первых, разместить код в обработчике события TDataSource