Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];
ВнизПрерывание выполнения запроса Найти похожие ветки
← →
Chainik (2002-04-29 09:33) [0]Здравствуйте, уважаемые знатоки! Вопрос, конечно простой, но не подскажите ли мне, как мне программно прервать выполнение SQL-запроса к БД?
С уважением!
← →
Sergey13 (2002-04-29 09:54) [1]Если доступ через DOA то http://www.farpost.com/personal/dmitryb/RUS/
Там есть примочка (Add-on для DOA)
"Содержит набор функций позволяющих открывать запросы с возможностью их прерывания во время выполнения.
"
Как работает не знаю не юзал.
← →
Anatoly Podgoretsky (2002-04-29 10:08) [2]Chainik © (29.04.02 09:33)
Терпи казак
← →
Chainik (2002-04-29 10:25) [3]У меня доступ через BDE. А мне очень надо!
← →
Johnmen (2002-04-29 10:31) [4]Ничего не выйдет...:(
← →
Delirium (2002-04-29 12:57) [5]Для того, чтобы что-то прервать, надо, для начала, иметь такую возможнось в принципе. Т.е. процесс должен идти в отличном от основого потоке. Как только поместишь, процесс в отделный поток -проблема отпадёт сама :) см.
TThread.Terminate
← →
SBeast (2002-05-08 14:56) [6]Не знаю как решить проблему, но TThread.Terminate точно не помогает, у самого такая проблема ...
← →
dimis (2002-05-08 15:51) [7]а как ты хочешь прервать?
по времени тогда почему бы не попробовать использовать Timer
запустить его и по окончании времени убить Query
← →
dimis (2002-05-08 16:00) [8]а еще лучше не убирать tQuery а остановить транзакцию
Session.StartTransaction
...........
Session.Rollback;
это по моему сработает
← →
Внук (2002-05-08 16:34) [9]Плохо, что доступ через BDE, потому что при использовании DOA это выполняется легко: запускается запрос в отдельном потоке, а потом в нужный момент из основного потока выполняется TOracleSession.BreakExecution, после чего нужно малость подождать, пока запрос будет остановлен. Сам так делаю, все прекрасно работает. Единственно, TOracleSession.BreakExecution появилась в сравнительно новых версиях DOA, на ранних версиях придется использовать прямой OCI-вызов.
← →
ivv (2002-05-10 09:02) [10]запусти еще одну сессию, и при прерывании убиавай ее
← →
Севостьянов Игорь (2002-05-10 12:27) [11]Если бы не BDE (для Oracle действительно лучше исп. OCI - быстрее и т.д.)
А вот еще и ADO тогда
берешь
TADOCommand.ExecuteOptions = [eoAsyncExecute]
и терминируешь
if stExecuting in States then Cancel;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c