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

Вниз

Как обрубить sql запрос, который работает в отдельном потоке?   Найти похожие ветки 

 
Chestniy   (2003-06-24 15:38) [0]

Доброго Времени Суток!
Вопрос видимо стандартный, но ответа на него пока не нашел. Используется MsSQL (7.5 и 2000) с доступом через ADO. При каждом обращении к бд открывается новый поток, в рамках которого запрос и выполняется. Теперь вопрос - как корректно остановить выполнение запроса (например, по желанию пользователя, которому надоело ждать :)? Если просто TerminateThread - остается блокировка на сервере.


 
stone ©   (2003-06-24 15:41) [1]


destructor TYourThread.Destroy;
begin
with ADOCommand do
if stExecuting in States then
Cancel;
with ADOConnection do
if InTransaction then
RollbackTrans;
inherited;
end;


 
Chestniy   (2003-06-24 16:31) [2]

Спасибо за быстрый ответ :)
но .. увы, виснет.
делаю вначале TerminateThread, потом вызываю Thread.Destroy.
В обработчик попадает, но потом виснет на первой же строчке ...
Другими словами если после вызова TerminateThread обратиться к компонентам работы с бд (ADOConnection, ADOCommand и т.п. ), то приложение безжалостно виснет. А если к ним не обрашаться - то как обрубить поток?


 
stone ©   (2003-06-24 16:52) [3]


> Chestniy (24.06.03 16:31)


> делаю вначале TerminateThread
Этого достаточно

Не надо никуда обращаться, а тем более вызывать Thread.Destroy
Компоненты (ADOConnection, ADOCommand и т.п. ) для потока, должны быть определены именно в потоке путем создания или присваивания. В Execute перед каждым запуском ADOCommand.Execute должно стоять if not Terminated. При создании потока в Constructor указывается FreeOnTerminate := true

Вроде все... если чего не забыл



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
6-55702
S. M.
2003-05-12 17:21
2003.07.17
запрос HTML


14-55845
Карелин Артем
2003-07-01 15:36
2003.07.17
Алгоритмы обработки изображений. Где найти описания?


14-55839
VK
2003-07-01 22:13
2003.07.17
RXLib


14-55712
Кулюкин Олег
2003-07-02 09:07
2003.07.17
Как вам грид из EhLib?


3-55458
terra
2003-06-25 12:03
2003.07.17
Проблемы с Query