Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прерывание выполнения запроса [D5, Oracle]


Chainik ©   (2002-04-29 09:33:00) 

Здравствуйте, уважаемые знатоки! Вопрос, конечно простой, но не подскажите ли мне, как мне программно прервать выполнение SQL-запроса к БД?
С уважением!


Севостьянов Игорь   (2002-05-10 12:27:00) [1]

Если бы не BDE(для Oracleдействительно лучше исп. OCI- быстрее и т.д.)
А вот еще и ADOтогда
берешь

T ADOCommand.ExecuteOptions = [eoAsyncExecute]

и терминируешь

if stExecuting in States then Cancel;


ivv   (2002-05-10 09:02:00) [2]

запусти еще одну сессию, и при прерывании убиавай ее


Внук   (2002-05-08 16:34:00) [3]

Плохо, что доступ через BDE, потому что при использовании DOA это выполняется легко: запускается запрос в отдельном потоке, а потом в нужный момент из основного потока выполняется TOracleSession.BreakExecution, после чего нужно малость подождать, пока запрос будет остановлен. Сам так делаю, все прекрасно работает. Единственно, TOracleSession.BreakExecution появилась в сравнительно новых версиях DOA, на ранних версиях придется использовать прямой OCI-вызов.


dimis   (2002-05-08 16:00:00) [4]

а еще лучше не убирать tQuery а остановить транзакцию
Session.StartTransaction

...........
Session.Rollback;

это по моему сработает


dimis   (2002-05-08 15:51:00) [5]

а как ты хочешь прервать?
по времени тогда почему бы не попробовать использовать Timer
запустить его и по окончании времени убить Query


SBeast   (2002-05-08 14:56:00) [6]

Не знаю как решить проблему, но TThread.Terminate точно не помогает, у самого такая проблема ...


Delirium   (2002-04-29 12:57:00) [7]

Для того, чтобы что-то прервать, надо, для начала, иметь такую возможнось в принципе. Т.е. процесс должен идти в отличном от основого потоке. Как только поместишь, процесс в отделный поток -проблема отпадёт сама :) см. TThread.Terminate


Johnmen   (2002-04-29 10:31:00) [8]

Ничего не выйдет...:(


Chainik   (2002-04-29 10:25:00) [9]

У меня доступ через BDE. А мне очень надо!


Anatoly Podgoretsky   (2002-04-29 10:08:00) [10]

Chainik © (29.04.02 09:33)
Терпи казак


Sergey13   (2002-04-29 09:54:00) [11]

Если доступ через DOA то http://www.farpost.com/personal/dmitryb/RUS/
Там есть примочка (Add-on для DOA)
"Содержит набор функций позволяющих открывать запросы с возможностью их прерывания во время выполнения.
"

Как работает не знаю не юзал.


Наверх

Титульная страница Поиск, карта сайта Написать письмо