Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2) / 15 сообщений из 15, страница 1 из 1
03.08.2009, 18:13
    #36123934
_Pavel__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
Доброго времени суток! Такая вот ситуация: есть 2 хранимые процедуры П1 и П2. П2 вызывается из П1. Во время выполнения П2 печатает всякие сообщения, вроде «столько-то строк обновлено» или «вызвана такая-то ошибка». Нужно, чтоб процедура П1 поймала эти сообщения и передала их в среду вызова процедуры П1. (П2 редактировать нельзя, П1 - можно). Как обратиться к потоку, в который П2 выводит сообщения?
Заранее благодарю за все ответы.
...
Рейтинг: 0 / 0
03.08.2009, 18:40
    #36123984
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
_Pavel__,
Написать новую П2new, чтобы она писала в тот поток, который может пощупать вызывающая процедура.
Заменить в П1 вызов П2 на П2new.
...
Рейтинг: 0 / 0
03.08.2009, 18:49
    #36124007
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
_Pavel__,
И где ж ты там потоки нашел?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create procedure t2
as
   print "t2"
go

create procedure t1
as
begin
   print "t1 -1"
   execute t2
   print "t1 -2"
end
go

execute t1
go
...
Рейтинг: 0 / 0
03.08.2009, 19:01
    #36124037
_Pavel__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
antand,
П2 должна использоваться. Её нельзя редактировать или не использовать
...
Рейтинг: 0 / 0
03.08.2009, 19:03
    #36124040
_Pavel__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
White Owl,

Спасибо за ответ, но что Вы хотите этим сказать?
...
Рейтинг: 0 / 0
03.08.2009, 19:25
    #36124065
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
_Pavel__,

Что значит должна использоваться?
Может тот функционал, который делает П2 должен быть? Помимо печати конечно.
Воплотите его в новой процедуре один в один, только "печать" направьте куда надо.
П2 не редактируйте.
Если у Вас П2 еще где-то кто-то вызывает, ну и пусть вызывает дальше.
Будет использоваться.
...
Рейтинг: 0 / 0
03.08.2009, 19:54
    #36124093
SQLMantis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
antand_Pavel__,
Написать новую П2new, чтобы она писала в тот поток, который может пощупать вызывающая процедура.
Заменить в П1 вызов П2 на П2new.

Что Вы понимаете под потоком и что означает "пощупать поток" ?
...
Рейтинг: 0 / 0
03.08.2009, 20:04
    #36124112
SQLMantis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
[quot _Pavel__] Нужно, чтоб процедура П1 поймала эти сообщения и передала их в среду вызова процедуры П1. /quot]

Что значит поймала сообщения? Вы хотите поместить их в переменную процедуры П1?
...
Рейтинг: 0 / 0
03.08.2009, 22:33
    #36124218
Dmitry..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
из процедуры вам сообщения не перехватить (разве-что вы напишете процедуру на яве).
все сообщения посылаются в клиентскую часть - уровень вложенности процедур не важен.
то. если ваше приложение умеет ловить сообщения от сервера, то все сообщения будут там.
...
Рейтинг: 0 / 0
04.08.2009, 09:32
    #36124549
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
_Pavel__ пишет:
> и П2. П2 вызывается из П1. Во время выполнения П2 печатает всякие
> сообщения, вроде «столько-то строк обновлено» или «вызвана такая-то
> ошибка». Нужно, чтоб процедура П1 поймала эти сообщения и передала их в
> среду вызова процедуры П1. (П2 редактировать нельзя, П1 - можно). Как

Это, к сожалению, невозможно. Весь "вывод", а именно, все диагностические
сообщения (print и raserror), все наборы данных (select) и все DONEINPROC
направляются для передачи по сети по протоколу TDS в буфер сетевого ввода-
вывода. Простых способов перенаправления этого потока данных в ASE нет.
Впрочем, сложных нет тоже, так что вам придётся изобретать какие-то другие
подходы для решения вашей задачи.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
04.08.2009, 10:57
    #36124828
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
SQLMantis,

Это автора надо спросить, ему такой термин видимо понятнее.
Для меня это должны быть или выходные параметры процедуры или временная таблица, которую наполняет сообщениями П2, а щупает П1.
...
Рейтинг: 0 / 0
05.08.2009, 10:44
    #36126993
_Pavel__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
Спасибо большое за ответы. С ораклом такое проделывалось следующим образом: создавался CMD файл, в нём вызывалась процедура sqlplus.exe <название процедуры>... . Все сообщения, которые выдавала процедура, печатались в какой-то поток, а потом C# перехватывал их, путём настройки свойств StandartInput, StandartError и ещё какой-то объекта process.
...
Рейтинг: 0 / 0
05.08.2009, 11:42
    #36127212
SQLMantis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
_Pavel__Спасибо большое за ответы. С ораклом такое проделывалось следующим образом: создавался CMD файл, в нём вызывалась процедура sqlplus.exe <название процедуры>... . Все сообщения, которые выдавала процедура, печатались в какой-то поток, а потом C# перехватывал их, путём настройки свойств StandartInput, StandartError и ещё какой-то объекта process.


У isql есть опция -o
...
Рейтинг: 0 / 0
05.08.2009, 12:08
    #36127302
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
_Pavel__
Все сообщения, которые выдавала процедура, печатались в какой-то поток, а потом C# перехватывал их, путём настройки свойств StandartInput, StandartError и ещё какой-то объекта process.

Не знаю как там в Оракуле, но все, что ASE выводит посредством print, спокойно перехватывается в
conn.InfoMessage+=new OleDbInfoMessageEventHandler(conn_InfoMessage);
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.08.2009, 16:40
    #36128287
_Pavel__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2)
Ex_Soft,
Спасибо. Если то же самое для Java JDBC покажете, то будет очень хорошо.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Перехват сообщений одной хранимой процедуры другой(ASE 15.0.2) / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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