Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запустить хранимую процедуру и забыть о ней / 4 сообщений из 4, страница 1 из 1
27.08.2005, 14:45
    #33237357
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить хранимую процедуру и забыть о ней
Доброго времени суток всем!
PB 9, ORA 9
Проблема в следующем. При выполнении хранимой процедуры (длительно выполняющейся - около часа) запущенной с помощью EXECUTE IMMEDIATE, приложение дожидается ее завершения, а пользователю не надо знать как она завершилась, нужно продолжать работать с приложением. Вопрос: как запустить хранимую процедуру и забыть о ее существовании, продолжая работать с приложением?

Пробовал следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
forward
global type n_execute from n_tmg
end type
end forward

global type n_execute from n_tmg
end type
global n_execute n_execute

type variables
Boolean	ib_execute
String	is_execute
n_transaction	itr_execute
end variables

on n_execute.create
call super::create
end on

on n_execute.destroy
call super::destroy
end on

event timer;call super::timer;
IF NOT ib_execute THEN RETURN
ib_execute = False                            // предохранимся от повторного запуска
EXECUTE IMMEDIATE :is_execute USING itr_execute;   // выполним 
end event

В событии окна:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
n_execute lnv_exec
n_cst_datetime lnv_datetime
lnv_exec = CREATE n_execute
lnv_exec.is_execute = "BEGIN PROCEDURE(Parm); END;" // что выполнить
lnv_exec.itr_execute= SQLCA                                    // в какой транзакции
lnv_exec.ib_execute = True                                      // разрешить запуск
lnv_exec.Start( 1 )                                                   // стартовать таймер
lnv_datetime.of_Wait( 2 )                                          // ждем старта таймера
DESTROY lnv_exec                                                 // уничтожим объект

Но, после запуска события Timer в объекте n_execute приложение дожидается окончания выполнения процедуры. Можно ли как-то по другому? Что-то не могу придумать!
Спасибо.
...
Рейтинг: 0 / 0
27.08.2005, 19:56
    #33237467
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить хранимую процедуру и забыть о ней
Поиск в этом форуме РУЛИТ!!!
...
Рейтинг: 0 / 0
27.08.2005, 21:17
    #33237499
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить хранимую процедуру и забыть о ней
ФилиппПоиск в этом форуме РУЛИТ!!!:-)
Чтобы задать правильный вопрос надо знать большую часть ответа

Есть еще идея. Можно попробовать сформировать job, вызывающий вашу процедуру, а приложению опрашивать сервер с некоторой периодичностью, не вызывающей серьезного замедления работы. Ну здесь все зависит от вашей фантазии :-)
...
Рейтинг: 0 / 0
29.08.2005, 10:02
    #33238087
AIZ
AIZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить хранимую процедуру и забыть о ней
Спасибо за советы. Похоже, JOB - то, что нужно.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запустить хранимую процедуру и забыть о ней / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]