powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Возвращаемое значение функции
6 сообщений из 6, страница 1 из 1
Возвращаемое значение функции
    #33419500
Eugene7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В базе(sybase) есть функция:

ALTER FUNCTION rs."ResourceCol_set" (
IN v_ColResourceName char(30) DEFAULT NULL
,IN v_ColName char(30) DEFAULT NULL
,IN v_ColSize integer DEFAULT NULL
)
RETURNS integer




Функция возвращает результат — успешно отработала или нет. Запускаю ее из под Sybase Central — всо ок. Мне надо вызвать ее из под клиента(ODBC)
Если я не забираю возвращаемое значение SQLExecute("CALL rs.ResourceCol_set( ?, ?, ?);\0") (все нужные переменные подготовленны), то нормально исполняется(в клиенте). Но как перенести возвращаемое значение функции в переменную в коде?
...
Рейтинг: 0 / 0
Возвращаемое значение функции
    #33419604
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция, это не хранимая процедура. Поэтому и вызывать ее нужно, как функцию, а не процедуру, т.е. из клиента открывать курсор на такой скрипт:
Код: plaintext
SELECT rs.ResourceCol_set( ?, ?, ?) AS Result;
На выходе в курсоре будет одна запись и одно поле Result, в котором и будет значение, возвращенное функцией.
...
Рейтинг: 0 / 0
Возвращаемое значение функции
    #33420488
Eugene7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
А вообще я могу как нибудь делать обратный вывод. Например, есть процедура:
Код: plaintext
1.
2.
3.
ALTER PROCEDURE rs."ResourceCol_get" (
 INOUT workresult integer,
 IN v_ColResourceName char( 30 ) DEFAULT NULL 
)

Первую переменную я использую как возвращаемое значение, т.е. по ходу исполнения процедуры ложу в нее значение. Я могу потом на ODBC забиндить переменную таким образом, что-бы новое значение в нее записалось?
...
Рейтинг: 0 / 0
Возвращаемое значение функции
    #33421045
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПервую переменную я использую как возвращаемое значение, т.е. по ходу исполнения процедуры ложу в нее значение. Я могу потом на ODBC забиндить переменную таким образом, что-бы новое значение в нее записалось?
INOUT переменная означает, что вызывающая ХП сессия может туда значение положить, а после вызова ХП считать новое, установленное в ХП значение.
...
Рейтинг: 0 / 0
Возвращаемое значение функции
    #33421298
Eugene7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSINOUT переменная означает, что вызывающая ХП сессия может туда значение положить, а после вызова ХП считать новое, установленное в ХП значение.
Да, если запускаю процедуру из под Sybase Central, так все и происходит. Проблемма в другом: я запускаю эту процедуру из клиента, который подключается к этой базе(через ODBC), и переменная, которую биндю(с помошью ODBC-ой функции SQLBindParameter() ) с переменной в запросе, не изменяет своего значения после исполнения запроса. Хотя при запуске из под Sybase Central-а переменная изменяет свое значение.
Я задал этот же вопрос в разделе "C++", там просто ответили что есть возможность сделать. Как именно не уточнили. Смотрел те справочники по ODBC, которые нашел - куча пример с тем, где переменная просто передается туда(IN), и ни одного примера на возврат(OUT). Смотрел функцию SQLBindParameter() в MSDN - есть константа SQL_PARAM_OUTPUT, которую можно задать этой функции. Но вот проблема - нет примера. Пытаюсь сам это делать - не получается, переменная все равно не изменяет свое значение.
...
Рейтинг: 0 / 0
Возвращаемое значение функции
    #33422483
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может поможет...
C уважением,
AlexandrN©
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Возвращаемое значение функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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