![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прерывание запроса [D5, IB6.x]
First_May © (2002-07-16 10:11:00)Подскажите пожалуйста, как можно выполнить запрос на выборку данных, чтобы его можно было бы прервать когда этого захочет пользователь.
Johnmen (2002-07-16 11:56:00) [21]>Alexandr © (16.07.02 11:35)
>есть еще способ прерывания с помощью генератора.
>Это рулез и прерывает запрос именно на сервере.
>Вот только писать мне здесь про это в очередной раз влом.
Будь человеком, не ломайся ! :-)))))))
А то очень хочется чего-нибудь рулезного, а не рутинного. ;o)
Kaban (2002-07-16 11:55:00) [22]я конечно этот пример не смотрел, но в начале там сказано
{ Demostrates how to execute a query in a background thread. This
files contains the main user interface for this program. The background
query code is in ResltFrm }
Наверное, нужно просто остановить второй поток. Ты с потоками когда нибудь работал?
First_May (2002-07-16 11:49:00) [23]Kaban © (16.07.02 11:35)
В этом примере запрос продолжает выполняться до тех пор, пока он не выполнится или не снимешь задачу. А мне бы хотелось, что бы приложение продолжало работать, а запрос прекратил бы свое выполнение, пусть даже через некотороые время.
Kaban (2002-07-16 11:35:00) [24]1. У Тайксейра и Паченко, по-моему, в первом томе был пример
2. \Borland\Delphi5\Demos\DB\BKQuery
Alexandr (2002-07-16 11:35:00) [25]есть еще способ прерывания с помощью генератора.
Это рулез и прерывает запрос именно на сервере.
Вот только писать мне здесь про это в очередной раз влом.
Достало уже.
поищи сам...
на www.ya.ru сходи...
First_May (2002-07-16 11:31:00) [26]Да, некоторые выполняются довольно долго и оптимизировать их не удается. А бывает такие ситуация, когда данные для запроса введены неправильно или просто передумал и не хочу его выполнять. Может кто нибудь подскажет, как выполнить запрос в отдельном потоке и что бы его можно было бы всетаки прервать?
Kaban (2002-07-16 11:23:00) [27]Лично мне запросы в отдельных потоках делать не приходилось. Знаю, что это возможно, но до сих пор прекрасно обходился. А пользователь подождет, на то он и пользователь.
Попробуйте оптимизировать запрос, неужели он у вас так долго выполняется.
Fareader (2002-07-16 11:14:00) [28]Alexandr © (16.07.02 11:10) Вот я же об этом
Alexandr (2002-07-16 11:10:00) [29]АГА, вот только сервер будет запрос выполнять до первого фетча, и только потом поймет, что хозяин помер
First_May (2002-07-16 11:06:00) [30]Kaban
Мне это и надо, так как пользователь передумал получать данный результат. Можешь подкинуть примерчик или где можно это посмотреть. Буду ОЧЕНЬ благодарен.
Desdechado (2002-07-16 10:34:00) [31]прерванный запрос откатывается. это в самом деле описанная фича IB6, причем сервер его обработку останавливает. естественно, никаких данных не возвращается (это на случай, если была мысль получить часть результата таким способом)
но ни разу не пользовался :(
Kaban (2002-07-16 10:26:00) [32]Это уже другой вопрос, корректно это делать или нет
Fareader (2002-07-16 10:21:00) [33]2Kaban © (16.07.02 10:13)
Я бы не советовал так делать - на клиенте ты поток убьешь, а сервер то уже "напрягся"
Kaban (2002-07-16 10:13:00) [34]Только если запрос выполняется в отдельном потоке
BAY (2002-07-16 10:12:00) [35]никак :(