- 25 -
void __fastcall TForm1::RunSQL(char* stringSQL)
{
char s1[250]; // рабочая строка
LabelBottom->Caption=stringSQL; // вывод SQL-строки для проверки
Query1->Close(); // закрыть набор данных
Query1->SQL->Clear(); // очистить буфер SQL-строк
Query1->SQL->Add(stringSQL); // добавление строки в буфер
// определяем, содержится ли в строке клауза SELECT (независимо от регистра)
strcpy(s1, StrUpper(stringSQL)); // копируем SQL-строку (в верхнем регистре) в s1
if (strstr(s1,"SELECT")!=NULL) // SELECT содержится в тексте запроса...
Query1->Open(); // выполнение SQL-предписания, содержащего SELECT
else // SELECT НЕ содержится в тексте запроса...
Query1->ExecSQL(); // выполнить SQL-предписание, не содержащего SELECT
// функция RunSQL упрощена в части исключения анализа корректности
// выполнения Open() и ExecSQL() методом анализа исключений
} // конец функции RunSQL -----
void __fastcall TForm1::SelectByMinMax(TObject *Sender)
{ // динамически сгенерировать текст SQL для выбора рыб по длине (от...до)
// выбор осуществляется по полю Length_In (длина в дюймах)
char s1[250], s2[250]; // рабочие строки для генерации SQL-предписания
strcpy(s1, s_const); // добавили постоянную часть строки
sprintf(s2,"Length_In > %s AND Length_In < %s",
Edit_LengthMin->Text,Edit_LengthMax->Text);
strcat(s1,s2); // добавили переменную часть строки
RunSQL(s1); // выполнить s1
} // конец функции SelectByMinMax -----
void __fastcall TForm1::SelectByFirstCharName(TObject *Sender)
{ // динамически сгенерировать текст SQL для выбора рыб по начальным
// символам названия (выбор осуществляется по полю Common_Name0
char s1[250], s2[250]; // рабочие строки для генерации SQL-предписания
strcpy(s1, s_const); // добавили постоянную часть строки
sprintf(s2,"Common_Name LIKE '%s%%'", Edit_FirstChar->Text);
strcat(s1,s2); // добавили переменную часть строки
RunSQL(s1); // выполнить s1
} // конец функции SelectByFirstCharName -----
void __fastcall TForm1::SelectByAnyCharName(TObject *Sender)
{ // динамически сгенерировать текст SQL для выбора рыб по произвольным
// символам названия (выбор осуществляется по полю Common_Name)
char s1[250], s2[250]; // рабочие строки для генерации SQL-предписания
strcpy(s1, s_const); // добавили постоянную часть строки
sprintf(s2,"Common_Name LIKE '%%%s%%'", Edit_AnyChar->Text);
strcat(s1,s2); // добавили переменную часть строки
RunSQL(s1); // выполнить s1
} // конец функции SelectByAnyCharName -----