powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Запустить хранимую процедуру и забыть о ней
4 сообщений из 4, страница 1 из 1
Запустить хранимую процедуру и забыть о ней
    #33237357
Фотография 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
Запустить хранимую процедуру и забыть о ней
    #33237467
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск в этом форуме РУЛИТ!!!
...
Рейтинг: 0 / 0
Запустить хранимую процедуру и забыть о ней
    #33237499
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппПоиск в этом форуме РУЛИТ!!!:-)
Чтобы задать правильный вопрос надо знать большую часть ответа

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


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