powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA -> ASE. Вызов remote procedure
4 сообщений из 4, страница 1 из 1
ASA -> ASE. Вызов remote procedure
    #33144625
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASA 9.0.2.2451
ASE 12.5.1

В ASE есть процедура возвращающая подробные данные по номеру заказа:

Код: plaintext
1.
2.
3.
4.
5.
6.
create procedure ownername.order_details (@p_numorder varchar( 8 ))
as 
begin
  select numorder, ..., instime
  from table where numorder = @p_numorder
end

В ASA есть удаленный сервер с доступом черз ODBC и для него описана прокси-процедура:

Код: plaintext
1.
create procedure DBA.remote_order_details(in @p_numorder char( 8 )) at 'server.dbname.ownername.order_details'

При вызове в ASA ISQL:

Код: plaintext
call remote_order_details('12345678')

процедура отрабатывает нормально и выдает данные.

Если же написать так:
Код: plaintext
select * from remote_order_details('12345678')

выдается ошибка: remote_order_details does not return a result set

Как сделать, если это возможно, чтобы второй вызов тоже работал?
...
Рейтинг: 0 / 0
ASA -> ASE. Вызов remote procedure
    #33144855
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых попробовать последний патч. Много чего начиная с версии 2451 по текущую было сделано в плане работы с удаленными серверами. Если не поможет, во вторых можно просто сделать еще процедуру-обертку, внутри которой будет стоять CALL Удаленка, а уже ее и вызывать в SELECT-ах.
...
Рейтинг: 0 / 0
ASA -> ASE. Вызов remote procedure
    #33149988
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена. Не знаю зависит ли в данном случае результат от патча.

Для вызова

Код: plaintext
select * from remote_order_details('12345678')

надо в ASA явно описать эту удаленную процедуру как возвращающую result-set:

Код: plaintext
1.
create procedure DBA.remote_order_details(in @p_numorder char( 8 )) at 'server.dbname.ownername.order_details'
result (col1 type1, ..., colN typeN)
...
Рейтинг: 0 / 0
ASA -> ASE. Вызов remote procedure
    #33153068
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
E-docПроблема решена. Не знаю зависит ли в данном случае результат от патча.

Для вызова

Код: plaintext
select * from remote_order_details('12345678')

надо в ASA явно описать эту удаленную процедуру как возвращающую result-set:

Код: plaintext
1.
create procedure DBA.remote_order_details(in @p_numorder char( 8 )) at 'server.dbname.ownername.order_details'
result (col1 type1, ..., colN typeN)

Кстати подобное пришлось делать когда имел связку ASA9-ASA8, т.е. вызовал из ASA9 процедурe из ASA8...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA -> ASE. Вызов remote procedure
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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