![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
... Стоп ревреш ... [D6, Oracle]
AlexGreG © (2002-07-12 12:04:00)Приветствую
Подскажите, как прервать обновление набора данных нажатием клавиши?
Запустили refresh или open, а результирующий набор просто огромный и занимает много времени на его обработку. Необходимо прервать процесс.
Благодарю
AlexGreg (2002-07-16 15:11:00) [1]Всё, разобрался!
Да, действительно в одном потоке ничего не сделаешь.
Только из другого потока можно прервать поток, выполняющий обновление или открытие набора данных.
А у компонента TOracleSession есть свойство, позволяющее нескольким потокам работать с ней.
И ещё нужно следить за тем, чтобы несколько потоков не обновляли сразу один и тот же набор данных.
Всем огромное спасибо.
Anatoly Podgoretsky (2002-07-15 11:25:00) [2]AlexGreG © (15.07.02 11:07)
Можно но только после того как запрос выполнится
roottim (2002-07-15 11:20:00) [3]и как в одном потоке ты выполниш этот метод Session.BreakExecution
, если до него и недойдет :)
AlexGreG (2002-07-15 11:07:00) [4]Всех благодарю, но тему продолжаю ...
А если в одном потоке использовать Session.BreakExecution?
Андрусь (2002-07-12 15:55:00) [5]И хочу заметить,что он довольно просто адаптируется к Odac.
Sergey13 (2002-07-12 14:00:00) [6]Если используешь DOA то на странице
http://www.farpost.com/personal/dmitryb/RUS/default.htm
есть
Oracle Cancelable Utils
Add-on для DOA (Direct Oracle Access)
Содержит набор функций позволяющих открывать запросы с возможностью их прерывания во время выполнения.
Я его не юзал, но может тебе поможет.
DarkGreen (2002-07-12 13:12:00) [7]Смотря как он реализует рефреш, если FetchAll, то да, а если сам будет выполнть Fetch (потребуется наследовать компонеты, как я понимаю), то он спокойно это сможет сделать
Johnmen (2002-07-12 12:13:00) [8]В одном потоке - никак, разве что Alt-Ctrl-Del :)))