Главная страница
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.05 c
1-1080426680
killer
2004-03-28 01:31
2004.04.18
каким образом можно импортировать функцию в DLL?


7-1076497137
Terry
2004-02-11 13:58
2004.04.18
Определение точки монтирования диска по имени устройства


1-1080291841
KSergey
2004-03-26 12:04
2004.04.18
Надо созда 2000 объектов TShape. Как ускорить?


8-1072449409
Kein
2003-12-26 17:36
2004.04.18
PlaySound


4-1076229799
dnsokol
2004-02-08 11:43
2004.04.18
Как закрыть объект, созданный при помощи CreateOleObject(xxx)