Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Остановка процедуры на сервере...   Найти похожие ветки 

 
Goida ©   (2004-03-19 21:03) [0]

Как это можно сделать? И можно ли вообще? Допустим, из своей проги я вызываю сохраненную процедуру (архивирование базы). Она выполняется долго и пользователь решает отменить её.


 
Nikolay M. ©   (2004-03-20 14:00) [1]


> архивирование базы

Написана своя или применяется стандартная процедура?


 
Goida ©   (2004-03-22 16:50) [2]

Написана своя


 
Goida ©   (2004-03-22 16:51) [3]

А если бы была стандартная?


 
Nikolay M. ©   (2004-03-22 17:15) [4]

Ну, если процедура своя и в ней присутствует какой-нибудь цикл, то самое простое, имхо, внутри этого цикла проверять како-нибудь поле какой-нибудь таблицы, в которое по кнопке Cancel будет заноситься какое-нибудь значение.
Не думаю, что я сказал что-то новое и умное...


 
Goida ©   (2004-03-23 09:29) [5]

Тогда такой вопрос. Значит работу этой процедуры нужно поместить в отдельный поток? Но как это сделать? С помощью TThread?


 
Nikolay M. ©   (2004-03-23 09:33) [6]

Это уже другой вопрос. Для начала нужно разобраться, как остановить процедуру на сервере. А как ты будешь это делать на клиенте: через доп. поток или цикл обработки сообщений - уже не так важно.


 
Polevi ©   (2004-03-23 10:17) [7]

есть простой кривой вариант
можно в отдельном потоке подключаться к серверу, стартануть запрос а при нажатии кнопки - TerminateThread - сервер словит отвал клиента и завершит процедуру


 
Nikolay M. ©   (2004-03-23 10:44) [8]


> Polevi ©

А ты бы сам так сделал? :)
Я бы не рискнул.
Хотя смысл задачи вообще странный: бэкап запускается и отменяется юзером...


 
Delirium ©   (2004-03-23 10:54) [9]

"А ты бы сам так сделал? " - хм, ну я так и делаю, более того, полагаю, что и QA поступает так-же. Хотя, конечно, грамотнее - убивать процесс на севере, инструментарий такой имеется (sp_who, sp_lock, sysprocesses, kill).


 
Nikolay M. ©   (2004-03-23 11:24) [10]


> ну я так и делаю, более того, полагаю, что и QA поступает
> так-же.

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
1-1080746689
TankMan
2004-03-31 19:24
2004.04.18
Cannot override a statik method... что это?...


4-1076532588
Runner
2004-02-11 23:49
2004.04.18
Отловить Enter


9-1064135653
Still_Swamp
2003-09-21 13:14
2004.04.18
Поделитесь в меру шустрым алгоритмом размытия растра.


4-1076149862
DNSokol
2004-02-07 13:31
2004.04.18
Thread + CreateOleObject какой-то странный глюк.


14-1080044979
Digitman
2004-03-23 15:29
2004.04.18
Занимательное-познавательное из куриного мира