Russian Belarusian English German Japanese Ukrainian

Статический и динамический запросы

CuBook05

В зависимости от способа формирования SQL-запрос может быть:
  • статическим
  • динамическим
Текст статического SQL-запроса формируется при разработке приложения и в процессе выполнения приложения не может быть изменен. Такой запрос обычно используется в случаях, когда код запроса заранее известен и во время работы приложения не требует модификации. Динамический SQL-запрос формируется или изменяется при выполнении приложения. Такой запрос обычно применяется, если его текст зависит от действий пользователя, например, при управлении сортировкой набора данных, когда в тексте запроса изменяются названия полей и добавляется или исключается описатель DESC.
 
Ниже приведен пример процедуры, в которой осуществляется формирование динамического запроса. Пользователь управляет сортировкой с помощью двух групп переключателей: в первой задается вид, во второй направление сортировки. Сортировка выполняется после нажатия кнопки Сортировать (Button1). Далее приводится код обработчика события нажатия кнопки Button1:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString d;
switch(RadioGroup2->ItemIndex)
{
case 0: d = ""; break;
case 1: d = "DES.C";
}
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT * FROM SEmployee.db");
switch(RadioGroup1->ItemIndex)
{
case 0: d = "ORDER BY Name " + d; break;
case 1: d = "ORDER BY Post " + d; break;
case 2: d = "ORDER BY Birthday " + d;
}
Query1->SQL->Add(d);
Query1->Active = true;
}
При нажатии кнопки Button1 для набора данных Query1 происходят подготовка и выполнение SQL-запроса. Текст запроса формируется в зависимости от состояния переключателей, управляющих сортировкой.
 
Когда в SQL-запросе отсутствует параметр ORDER, по умолчанию записи упорядочиваются по первому полю. Поэтому в рассматриваемом примере отсутствие параметра сортировки и сортировка по полю Name приводят к одинаковому результату.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий