Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Технологии Клиент/Сервер >> Разработка клиентной части >> Подготовка запросов

[Назад]    [Содержание ]    [Вперед]

  


Подготовка запросов


Когда запрос отсылается серверу, последний должен проанализировать его, проверить корректность, скомпилировать и выполнить. Это происходит всякий раз при отправке оператора SQL на сервер. Однако вы можете увеличить производительность, позволяя серверу выполнить предварительные действия по анализу, проверке и компиляции, т.е. "препарируя" оператор SQL перед тем, как сервер начнет его выполнять. Подготовительные действия особенно уместны в случае циклического запроса. Подготовка осуществляется с помощью вызова метода TQuery. Prepare (), как показано в следующем фрагменте кода:

Query1.Prepare; // Подготовка запроса
try
═════{Выполнение запроса в цикле }
═════for i := 1 to 100 do begin
══════════{ Определение параметров запроса }
══════════Query1.РагаmВуName( 'SomeParam') .Aslnteger := 1;
══════════Query1. ParamByName ('SomeOtherParam').AsString := SomeString;
══════════Queryl.Open; // Открытие запроса
══════════try
═══════════════{ Здесь можно использовать полученный результат }
══════════finally
═══════════════Query1.Close; // Закрытие запроса
══════════end;
═════end;
finally
═════Qieryl.Unprepare; // Освобождение ресурсов
end;

Метод Prepare () должен быть вызван только один раз перед использованием запроса. Более того, вы можете изменить значения параметров запроса после первого вызова метода Prepare (); повторный вызов при этом не нужен (однако если вы измените операторы SQL в запросе, необходимо снова вызывать метод Prepare ()). Вызов этого метода должен сопровождаться вызовом метода TQuery.Unрrераrе () для освобождения ресурсов, занятых при использовании метода Prepare (). Запросы можно подготовить, щелкнув на кнопке ОК в редакторе свойств Params или вызвав метод TQuery.Prepare(), как показано в приведенном выше фрагменте кода. Для запросов, операторы SQL которых не могут быть изменены, рекомендуем вызывать метод Prepare() один раз в обработчике события формы OnCreate и метод UnPrepare() в обработчике события OnDestroy. SQL-запросы можно не подготавливать, но выигрыш от подготовки слишком значительный, чтобы пренебрегать им.



[Назад]    [Содержание ]    [Вперед]

  


  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017