"Отмена запроса" как это сделать?
Модератор: kdv
"Отмена запроса" как это сделать?
С радостью узнал что ФБ2 можно отменять запросы!
Подскажите как это можно сделать програмно?
(использую ДЕЛФИ 7 Политра компонентов InterBase)
Подскажите как это можно сделать програмно?
(использую ДЕЛФИ 7 Политра компонентов InterBase)
Проводил эксперемент
Запускал в приложении долгоиграющий запрос, а потом вырубал приложение из диспетчера задач.
Дак вот ФБ 1.5 с настойчивойстью осла продолжал выполнять этот запрос, а последний ФБ2 прекращал его выполнять (и правильно делал )
Можно ли какнибудь программно дать команду серверу , что
запрос выполнять не нужно!?
Запускал в приложении долгоиграющий запрос, а потом вырубал приложение из диспетчера задач.
Дак вот ФБ 1.5 с настойчивойстью осла продолжал выполнять этот запрос, а последний ФБ2 прекращал его выполнять (и правильно делал )
Можно ли какнибудь программно дать команду серверу , что
запрос выполнять не нужно!?
НЕТ.Можно ли какнибудь программно дать команду серверу , что
запрос выполнять не нужно!?
Выполнение запросов можно отменить только:
1. в IB 6.5 через спец-вызов IB API
2. в IB 7.x/2007 через таблицы tmp$
3. возможно в FB 2.1, через таблицы mon$. не уверен, что будет можно.
ты меня поучи еще, как мне отвечать на моем форуме, и чего я знаю, а чего нет. Если я чего не знаю, я или так и пишу, или вообще не отвечаю.Если не знаешь так и пиши не знаю!
А вот ты где-то чего то "узнал", и даже не знаешь, где.
Скажите только одноWildSery писал(а):Поможет в чём?
Очень малое число запросов должно проектироваться с возможностью прерывания.
Из более чем 2000 у меня в базе - только 3 таких, прерываемых.
Про прерывание же "обычных" запросов уже всё сказано.
как прервать запрос выполняемый в потоке?
Ибо даже если поток уничтожаешь запрос продолжает выполняться.
Если же вырубить приложение то он прекращается.
Если не знаете то не пишите!!!
Такое впечатление, что ты не читаешь ответов.Dmitry74 писал(а):Скажите только одно
как прервать запрос выполняемый в потоке?
Ибо даже если поток уничтожаешь запрос продолжает выполняться.
Дмитрий тебе разжевал всё. На FB2 - никак.
Запрос выполняется не в потоке, а на сервере. А твой поток только ожидает получения данных (если упрощённо).
Да я не правильно выразился!!!WildSery писал(а):Такое впечатление, что ты не читаешь ответов.Dmitry74 писал(а):Скажите только одно
как прервать запрос выполняемый в потоке?
Ибо даже если поток уничтожаешь запрос продолжает выполняться.
Дмитрий тебе разжевал всё. На FB2 - никак.
Запрос выполняется не в потоке, а на сервере. А твой поток только ожидает получения данных (если упрощённо).
Я прекрасно знаю, что запрос выполняется на сервере!
Поток в приложении да действительно ждёт ответа с сервера!
Как сделать чтобы поток прекращал ждать?
Проверял я в IBExpert может прекращать ждать! И сервер FB2 прекращает выполнять запрос. (в отличие от FB1.5).
Это всё проверено, а Вы говорите ,что никак.
Например, создаешь потомка от TThread, который запускает запрос и ждет его завершения. Этот вторичный поток можно в любое время терминировать. Хотя не факт, что это правильно.Dmitry74 писал(а):Как сделать чтобы поток прекращал ждать?
Спроси у Хвастунова, как он это сделал .Dmitry74 писал(а):Проверял я в IBExpert может прекращать ждать! И сервер FB2 прекращает выполнять запрос. (в отличие от FB1.5).
Спасибо что просвитил про TThread это я и так знал!CyberMax писал(а):Например, создаешь потомка от TThread, который запускает запрос и ждет его завершения. Этот вторичный поток можно в любое время терминировать. Хотя не факт, что это правильно.Dmitry74 писал(а):Как сделать чтобы поток прекращал ждать?
Спроси у Хвастунова, как он это сделал .Dmitry74 писал(а):Проверял я в IBExpert может прекращать ждать! И сервер FB2 прекращает выполнять запрос. (в отличие от FB1.5).
Но вся фигня в том что поток НЕ УБИТЬ если он ждёт ответа с сервака!
А в IBExperte это научились делать!
Совершенно верно!!!CyberMax писал(а):Там же есть запуск в Background'е... Наверно, он про него говорит. Сам этим пользуюсь, когда предполагаю, что тестовый запрос будет выполняться очень долго.WildSery писал(а):Как ты это увидел, интересно знать.Dmitry74 писал(а):И сервер FB2 прекращает выполнять запрос. (в отличие от FB1.5).
аналогично делаю!!!
Гражданин Хвастунов ответьте ПОЖАЛУЙста!CyberMax писал(а):Например, создаешь потомка от TThread, который запускает запрос и ждет его завершения. Этот вторичный поток можно в любое время терминировать. Хотя не факт, что это правильно.Dmitry74 писал(а):Как сделать чтобы поток прекращал ждать?
Спроси у Хвастунова, как он это сделал .Dmitry74 писал(а):Проверял я в IBExpert может прекращать ждать! И сервер FB2 прекращает выполнять запрос. (в отличие от FB1.5).
Неправда. Для этого есть WinAPI функция TerminateThread, но у нее побочные эффекты.Dmitry74 писал(а):Спасибо что просвитил про TThread это я и так знал!
Но вся фигня в том что поток НЕ УБИТЬ если он ждёт ответа с сервака!
Не ответит. Хвастуонв - автор IB Expert и здесь не появляется. Спрашивай на сайте Эксперта .Dmitry74 писал(а):Гражданин Хвастунов ответьте ПОЖАЛУЙста!
P.S. Считается хорошим тоном в цитировании использовать только фразу, на которую отвечаешь. Иначе посты становятся громоздкими и иногда бывает не понятно, к чему привязываешь свой ответ.
Давайте подытожим. Выполнение запроса нельзя отменить, но можно завершить поток, запустивший запрос, что приводит к остановке его [запроса] выполнения сервером.
Серега, хорош дурака валять. Сам догадаешься или методику рассказать?WildSery писал(а):Как ты в диспетчере задач видишь, выполняет сервер твой запрос или уже нет?