ВУЗ:
Составители:
Рубрика:
- 52 -
чинающиеся с двоеточия формальные параметры, изменяемые во
время выполнения скомпилированного приложения);
• динамическое задание SQL-запроса; в этом случае текст (строка) SQL-
запроса генерируется в RunTime и передается компоненту TQuery для
исполнения.
Простейшая схема использования возможностей компонента TQuery,
обеспечивающая функционирование SQL-запросов к БД приведен ниже (C-
текст дан применительно к системе C++Builder, предполагается, что текст
SQL-запроса вводится
пользователем в компонент Edit1):
void __fastcall TForm1::RunSQL(TObject *Sender)
{ // функция вызывается при нажатии
// на кнопку ‘RunSQL’ (‘Выполнить SQL’)
Query1->Close(); // закрыть БД
Query1->SQL->Clear(); // очистить буфер SQL-предписаний
Query1->SQL->Add(Edit1->Text); // копировать в буфер из Edit1
Query1->Open(); // заново открыть БД (c выполнением SQL)
} // конец функции RunSQL
Приближенный к практике Раsса1-текст (для Delphi) в этом случае будет
следующим (полагаем, что имя TQuery-компонента суть Query_l, a строки
SQL_string_l, SQL_string__2 и др. содержат ранее сгенерированные тексты
частей SQL-запроса - например, отдельно SELECT-часть, WHERE-часть и
др.):
.....
try { включить режим отслеживание исключительных ситуаций }
Screen.Cursor:=crSQLWait;{ форма курсора - песочные часы }
Query_1.Close;
Query_1.SQL.Clear; { очистить текст SQL-запроса }
Qnery_1.SQL.Add(SQL_string_1); { 1-я часть SQL-запроса }
Query_1.SQL.Add(SQL_string_2); { 2-я часть SQL-запроса }
{ и так далее - текст запроса может быть достаточно длинным... }
Query_1.Prepare; { ...часто повышает эффективность }
Query_1.Open; { выполнение SELECT - запроса}
Screen.Cursor:=crDefault; { форма курсора - по умолчанию }
except { ...какая-то ошибка при выполнении OPEN }
on E:EDatabaseError do
begin
if E.Message=LoadStr(SHandleError) then { ...это не SELECT !}
begin
Query1.ExecSQL; {
попытка выполнения не SELECT - запроса }
Screen.Cursor:=crDefault; { форма курсора - по умолчанию }
end
else
begin { ошибка выполнение не SELECT - запроса }
- 52 - чинающиеся с двоеточия формальные параметры, изменяемые во время выполнения скомпилированного приложения); • динамическое задание SQL-запроса; в этом случае текст (строка) SQL- запроса генерируется в RunTime и передается компоненту TQuery для исполнения. Простейшая схема использования возможностей компонента TQuery, обеспечивающая функционирование SQL-запросов к БД приведен ниже (C- текст дан применительно к системе C++Builder, предполагается, что текст SQL-запроса вводится пользователем в компонент Edit1): void __fastcall TForm1::RunSQL(TObject *Sender) { // функция вызывается при нажатии // на кнопку ‘RunSQL’ (‘Выполнить SQL’) Query1->Close(); // закрыть БД Query1->SQL->Clear(); // очистить буфер SQL-предписаний Query1->SQL->Add(Edit1->Text); // копировать в буфер из Edit1 Query1->Open(); // заново открыть БД (c выполнением SQL) } // конец функции RunSQL Приближенный к практике Раsса1-текст (для Delphi) в этом случае будет следующим (полагаем, что имя TQuery-компонента суть Query_l, a строки SQL_string_l, SQL_string__2 и др. содержат ранее сгенерированные тексты частей SQL-запроса - например, отдельно SELECT-часть, WHERE-часть и др.): ..... try { включить режим отслеживание исключительных ситуаций } Screen.Cursor:=crSQLWait;{ форма курсора - песочные часы } Query_1.Close; Query_1.SQL.Clear; { очистить текст SQL-запроса } Qnery_1.SQL.Add(SQL_string_1); { 1-я часть SQL-запроса } Query_1.SQL.Add(SQL_string_2); { 2-я часть SQL-запроса } { и так далее - текст запроса может быть достаточно длинным... } Query_1.Prepare; { ...часто повышает эффективность } Query_1.Open; { выполнение SELECT - запроса} Screen.Cursor:=crDefault; { форма курсора - по умолчанию } except { ...какая-то ошибка при выполнении OPEN } on E:EDatabaseError do begin if E.Message=LoadStr(SHandleError) then { ...это не SELECT !} begin Query1.ExecSQL; { попытка выполнения не SELECT - запроса } Screen.Cursor:=crDefault; { форма курсора - по умолчанию } end else begin { ошибка выполнение не SELECT - запроса }
Страницы
- « первая
- ‹ предыдущая
- …
- 50
- 51
- 52
- 53
- 54
- …
- следующая ›
- последняя »