![]() |
Параллельные вычисления в Оракле
В общем система: Оракл 10 + Дельфи 7
Задача: Запустить на выполнение некую долгую процедуру, в программе в прогрессбаре выводить, насколько завершилась процедура. Есть запрос, который показывает, насколько она завершилась Собственно проблема: нужно запускать процедуру параллельно программе, иначе прога "виснет" до завершения выполнения процедуры. Что я уже пытался сделать: запускал процедуру в отдельном потоке в дельфях (создавал класс, наследовал его от TThread). При этом все равно приложение зависает, хотя если вместо запуска процедуры поместить бесконечный цикл, то поток работает параллельно, остальной программе не мешает. В чем я вижу решение: есть мысль, что в Оракле тоже должна быть возможность параллельного запуска процедуры. Гугл уже спрашивал, недоумевающе разводит руками... возможно плохо спрашивал Джобы (Job) в Оракле использовать нельзя по религиозным причинам:) Кто-нибудь может мне помочь? |
а почему ащще аракл?
|
в общем проблему решил:)
насколько я понял, в оракле распараллелить задачу можно только джобами, других способов я не нашел. запустил параллельно в программе в отдельном потоке, а чтоб не виснул главный поток нужно запускать процедуру через отдельную сессию. То есть в поток передаются параметры соединения (имя пользователя, пароль, юрл) и поток открывает отдельную сессию. Правда для остановки потока до его завершения пришлось использовать функцию TerminateThread, что не есть хорошо. Но другого выхода я не нашел. Спасибо за внимание |
| Текущее время: 13:10. Часовой пояс GMT +7. |
Форум открыт в июле 2004 г.