![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отмена SQL запроса [D6, D7, IB6.x]
inic © (2004-05-21 11:25:00)Один из потоков приложения выполняет (или запускает) SQL-запрос (с помощью TSQLQuery+TSQLConnection). Допустим этот запрос достаточно длителен. Каким образом можно в этот момент отменить этот запрос из главного потока.
Может бытьTSomeThread.Connection.Close?
Заранее спасибо!!!
inic (2004-05-21 11:33:00) [1]Спасибо!!!!!!!!!!
Sandman25+1 (2004-05-21 11:30:00) [2]Стандартный ответ - запрос должен проверять какой-нибудь флаг (например, поле в таблице, причем желательно читать как Dirty Read), а нажатие на кнопку "Отмена" должно устанавливать этот флаг.
Естественно, это работает только в том случае, если запрос имеет циклическую структуру (хранимая процедура с for select или вызовами нескольких других процедур). Если весь запрос состоит из update mytable set filed1 = func(field2) и выполняется долго только потому, что в таблице несколько сот миллионов записей, то тут ничего уже не поможет ИМХО.