Текущий архив: 2006.07.16;
Скачать: CL | DM;
Внизиспользование индекса Найти похожие ветки
← →
rus0303 (2006-06-25 22:39) [0]Как запустить выполняться операцию и не дожидаясь конца исполнения перейти к другим задачам. Все операции выполняются в СУБД ORACLE 9i. Помогите пожалуйста, очень срочно
← →
rus0303 (2006-06-25 22:42) [1]Ошибся здесь не использование идекса, а вопрос по выполнению задач
← →
rus0303 (2006-06-25 22:57) [2]Пожалуйста ответьте, очень срочно и очень надо. ГОРИТ!!!
← →
unknown © (2006-06-25 23:19) [3]
> rus0303 (25.06.06 22:39)
> Как запустить выполняться операцию и не дожидаясь конца
> исполнения перейти к другим задачам. Все операции выполняются
> в СУБД ORACLE 9i. Помогите пожалуйста, очень срочно
Запустить выполнение в отдельном потоке. (TThread+F1)
> rus0303 (25.06.06 22:57) [2]
> Пожалуйста ответьте, очень срочно и очень надо. ГОРИТ!!!
Не стоит упоминать про срочность.
← →
sniknik © (2006-06-25 23:21) [4]срочно не получится. и чем больше "ГОРИТ!!!" тем менее обучаем "клиент", проверено практикой.
судя по всему нужно сделать асинхронное выполнение... т.е. запустил запрос, и не дожидаясь начинаеш чтото другое делать. (???)
2 варианта, первый коппоненты которые это умеют - например ADO, настроить опцию выполнения на eoAsyncExecute, запустить и по ходу программы ловить событие onExecuteComplete (узнать что закончилось).
второй собственная реализация в потоке, внутри потока создаеш все нужные компоненты (практически почти неважно какие) иницализируеш, вносиш запрос, выполняеш, ждеш завершения. на основном потоке не отразится, он в этоже время занимается своими делами.
все. общие сведения кончились. ждем конкретных проблем, что не получается...
← →
Bess (2006-06-26 00:14) [5]Народ нужно это сделать в самом Oracle !!!! Как там сделать так чтоб запустить выполенние операции и не дождавшись выполенния произвести другую ???!!!
← →
softservice © (2006-06-26 02:53) [6]
> Народ нужно это сделать в самом Oracle !!!! Как там сделать
> так чтоб запустить выполенние операции и не дождавшись выполенния
> произвести другую ???!!!
Какую операцию сделать и какую запустить?
В общих чертах: Юзай джобики.
← →
Германн © (2006-06-26 02:56) [7]
> sniknik © (25.06.06 23:21) [4]
Отрицание мягкого знака после шипящих твоё кредо? :-)
← →
sniknik © (2006-06-26 09:16) [8]Германн © (26.06.06 02:56) [7]
нет. просто неграмотность в русском языке.
← →
ANB © (2006-06-26 09:42) [9]
> Bess (26.06.06 00:14) [5]
Используй несколько сессий и в каждой выполняй запрос асинхронно. Но если будут блокировки - это не поможет (да и вообще ничего не поможет).
← →
evvcom © (2006-06-26 09:47) [10]> [5] Bess (26.06.06 00:14)
create or replace procedure MyProc is
pragma autonomous_transaction;
begin
...
end;
← →
evvcom © (2006-06-26 09:50) [11]> [10] evvcom © (26.06.06 09:47)
и если внутри MyProc используется DML, то не забыть commit; перед выходом.
← →
Sergey13 © (2006-06-26 09:52) [12]> [10] evvcom © (26.06.06 09:47)
Сомневаюсь я однако, что это позволит распаралелить исполнение.
← →
evvcom © (2006-06-26 10:01) [13]> [12] Sergey13 © (26.06.06 09:52)
а хрен его знает, чего ему надо? Он спросил, как это ораклом сделать. Кстати, надо попробовать, действительно, будет ли распараллеливание? А то я такие вещи только на коротких транзакциях пробовал и естественно для других целей.
← →
Desdechado © (2006-06-26 11:51) [14]> Сомневаюсь я однако, что это позволит распаралелить исполнение.
Поддерживаю сомнения. Автономные транзакции предназначены для независимых изменений в БД. Пока код не закончится, возврата не будет, имхо.
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c