Как остановить sql запрос?

Рейтинг: 1Ответов: 3Опубликовано: 22.06.2011

Есть формочка, заполняется и по кнопочке отправляется запрос в бд. В базе таблицы миллионники, и поэтому иногда результата приходится ждать очень долго. Собственно суть: заполнил форму, нажал кнопку, запрос пошел, и если нажавший копку передумал получать результаты, как можно остановить, прекратить поиск в базе???

Ответы

▲ 1Принят

Узнать pid процесса по ps -ax и сделать ему kill.

Зависит от того, что у вас за база данных: в MySQL транзакция останавливается при потере связи с клиентом.

▲ 1

Я так понимаю, что функция отправляющая запрос просто не возвращает управление, поэтому программа стоит и нельзя ничего сделать. Организуйте отправку запроса в отдельном потоке, а при желании остановить просто завершайте поток.

▲ 1

Зависит сильно от того, какая база и версии базы, к примеру, в Firebird 2.5 запрос можно грохнуть средствами самого сервера, а то же Firebitd 2.1 не может такое сделать. Самое правильное в данном случае, если запрос выполняется непозволительно долго, пересмотреть его.