Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.09.2002, 09:49
|
|||
---|---|---|---|
вопрос по PL\SQL и не совсем |
|||
#18+
Из Си-шной функции вызывается процедура PL\SQL. Есть ли возможность в процессе работы процедуры возвращать в вызывающую функцию какие-то вычисленные значения? Это нужно например для прогрессбара. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2002, 09:57
|
|||
---|---|---|---|
вопрос по PL\SQL и не совсем |
|||
#18+
Можно попробовать использовать PACKAGE. Описав в теле пакета глобальные переменные можно другой функцией из этого же PACKAGE их считывать. Применимо для одной сессии. PS: Сам не пробовал. Это с чужих слов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2002, 10:09
|
|||
---|---|---|---|
вопрос по PL\SQL и не совсем |
|||
#18+
Да нет. Прикол в том, чтобы PL/SQL-ная процедура возвращала часть посчитанных данных в Си-шную функцию (из которой была вызвана) до своего окончания. Т.е. грубо говоря есть клиент, на нем запускается функция на СИ, эта функция запускает PL/SQL процедуру, которая обрабатывается на сервере. Управление программой вернется на клиента не раньше, чем выполнится процедура. Так вот, есть ли возможность передать с сервера промежуточные данные на клиента до окнчания процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2002, 10:35
|
|||
---|---|---|---|
|
|||
вопрос по PL\SQL и не совсем |
|||
#18+
На мой взгляд, иначе как созданией 2-й сесии не получится. Т.е. схема примерно такова: 1-я сессия чего-то делает и периодически "уведомляет" о своей работе через к примеру, pipes, или, если у тебя версия оракла 8.1 и больше, через заполнение некоей таблицы процедурой с pragma pragma autonomous_transaction - это чтобы не мешать основной транзакции. Ну клиент из 2-й сессии читает все это и перерисовывает прогресбар. Еще 3-й вариант- складывать уведомления через utl_file, это только сейчас в голову пришло. Тогда вроде как 2-я сессия не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2002, 14:05
|
|||
---|---|---|---|
вопрос по PL\SQL и не совсем |
|||
#18+
2 Um А в чем дело? Загоняешь свою здоровую процедуру в fork или thread (смотря под чем пишешь) тогда управление вернется в программу, кроме того что она что-то твое делает заставить менять ее глобальные переменные. Вызоваешь в цикле другую функцию считывающую эти глобальные переменные и показываешь то что хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&tablet=1&tid=1993080]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
25ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 135ms |
0 / 0 |