forum.rastrnet.ru  

Вернуться   forum.rastrnet.ru > Компьютеры и всё, что с ними связано > Программируем

 Сообщения за день       Добавить альбом       Поиск      Правила форума  


Ответ
 
Опции темы Опции просмотра
Старый 21.07.2008, 10:41   #1
ZiC_
программист
 
Аватар для ZiC_
 
Регистрация: 09.10.2005
Сообщений: 83
По умолчанию Параллельные вычисления в Оракле

В общем система: Оракл 10 + Дельфи 7
Задача: Запустить на выполнение некую долгую процедуру, в программе в прогрессбаре выводить, насколько завершилась процедура.
Есть запрос, который показывает, насколько она завершилась
Собственно проблема: нужно запускать процедуру параллельно программе, иначе прога "виснет" до завершения выполнения процедуры.
Что я уже пытался сделать: запускал процедуру в отдельном потоке в дельфях (создавал класс, наследовал его от TThread). При этом все равно приложение зависает, хотя если вместо запуска процедуры поместить бесконечный цикл, то поток работает параллельно, остальной программе не мешает.
В чем я вижу решение: есть мысль, что в Оракле тоже должна быть возможность параллельного запуска процедуры. Гугл уже спрашивал, недоумевающе разводит руками... возможно плохо спрашивал
Джобы (Job) в Оракле использовать нельзя по религиозным причинам
Кто-нибудь может мне помочь?
__________________
"Нельзя бояться, страх убивает разум" Ф. Герберт
ZiC_ вне форума   Ответить с цитированием
Старый 16.08.2008, 14:09   #2
ShAD
Furgitive from Hell
 
Аватар для ShAD
 
Регистрация: 15.07.2005
Сообщений: 1,911
Отправить сообщение для ShAD с помощью ICQ
По умолчанию

а почему ащще аракл?
__________________
Смерть близка и от неё не убежать...
ShAD вне форума   Ответить с цитированием
Старый 18.08.2008, 12:12   #3
ZiC_
программист
 
Аватар для ZiC_
 
Регистрация: 09.10.2005
Сообщений: 83
По умолчанию

в общем проблему решил
насколько я понял, в оракле распараллелить задачу можно только джобами, других способов я не нашел.
запустил параллельно в программе в отдельном потоке, а чтоб не виснул главный поток нужно запускать процедуру через отдельную сессию. То есть в поток передаются параметры соединения (имя пользователя, пароль, юрл) и поток открывает отдельную сессию. Правда для остановки потока до его завершения пришлось использовать функцию TerminateThread, что не есть хорошо. Но другого выхода я не нашел.
Спасибо за внимание
__________________
"Нельзя бояться, страх убивает разум" Ф. Герберт
ZiC_ вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто умеет переводить числа в разные системы исчисления Techno Объявления 16 01.05.2007 22:43


Текущее время: 05:53. Часовой пояс GMT +7.


Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Форум открыт в июле 2004 г.
Кошки и котята Красноярска и Сибири Живой Мир Сибири