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

Вниз

Как грамотно выполнить асинхронный ExecSQL в ODAC (Oracle)   Найти похожие ветки 

 
ANB ©   (2005-07-04 09:15) [0]

Сел перерабатывать свою прогу для асинхронного выполнения длительных запросов. Не очень хотелось бы уходить в отдельный поток, так как писать больше, проблемы с синхронизацией, плюс дублирование штатных средств. Нашел свойство NonBlocking. Если его включаешь, то запрос выполняеся асинхронно, можно ждать его окончания с помощью Executing и отменять запрос через BreakExec (все это на базе TOraQuery). Вылезла проблема - перестали генерится исключения в основном потоке, вместо этого стало выдаваться окно с ошибкой. Нашел в исходниках ODAC как это работает, перехватил Application.OnException, вроде работает, как надо.
Вопросы :
- правильно ли я все это сделал (нет ли способа красивее)
- как таким же образом переделать работу с TOraScript
Для TOraScript я попробовал подменить дейтасет на свой с включенным NonBlocking, но в результате получил только отключение исключений, а асинхронка все равно не работает.
Вижу 2 выхода - продолжать копаться в исходниках TOraScript или написать свою реализацию, тем более, что штатный ругается на некоторые скрипты, которые нормально выполняются в SQL Plus и TOAD (не любит пустые операторы из одних комментариев, не есть Exit)


 
ANB ©   (2005-07-04 11:26) [1]

Накопал проблему - Executing отрабатывает некорректно. То есть запрос еще работает, а он возвращает False;



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
1-1122122718
xroot
2005-07-23 16:45
2005.08.14
дебаггер


14-1122140424
X9
2005-07-23 21:40
2005.08.14
2 компа + 2 сет.платы + витая пара = troubles


1-1122346020
Knop
2005-07-26 06:47
2005.08.14
Поиск в файле (быстрый)


1-1122281099
-=snoop=-
2005-07-25 12:44
2005.08.14
как вставить в меню изображение (*.bmp, *.jpg)


1-1122297612
Mamed
2005-07-25 17:20
2005.08.14
TChart i apraksimasiya