передача ROWID через SET-PARAMETER

Обсуждение вопросов по разработке программ в среде продуктов копорации "Progress Software"
dwp
Старожил
Сообщения: 30
Зарегистрирован: 14 ноя 2007, 12:15

передача ROWID через SET-PARAMETER

Сообщение dwp » 14 ноя 2014, 10:35

вызов процедуры делается через INVOKE таким способом
/* Устанавливаем количество параметров */
vCallObjHand:NUM-PARAMETERS = NUM-ENTRIES(params).
/* Параметры вызова - по списку */
DO i = 1 TO NUM-ENTRIES(params):
vCallObjHand:SET-PARAMETER (i,"CHAR",d_type[i],d_par[i]).
END.

/* Вызов */
vCallObjHand:INVOKE() NO-ERROR.

при этом если отследить через трассировку передачу параметров вижу следующее
Run 18f2menu_usr.p "_User 0x0000000000005fc4 4" это и есть вызов через INVOKE

параметры у процедуры такие 18f2menu_usr.p
DEF INPUT PARAM iClassCode AS CHAR NO-UNDO.
DEF INPUT PARAM iROWID AS ROWID NO-UNDO.
DEF INPUT PARAM iLevel AS INT64 NO-UNDO.

получается ROWID условно равен 0x0000000000005fc4 ,
но запись по нему не находится добавил внутри процедуры еще один CALL с использованием параметра iROWID
GetSurrogate("_user", iROWID)
и вижу следующее

Func GetSurrogate in pp-db2l.p "_user 0x307830303030303030303030303035666334"

получено не то же значение что передавалось вверху
что то с преобразованием ?
подскажите, пожалуйста, что не так в данном коде.

dwp
Старожил
Сообщения: 30
Зарегистрирован: 14 ноя 2007, 12:15

Re: передача ROWID через SET-PARAMETER

Сообщение dwp » 14 ноя 2014, 10:52

в общем то сам нашел ответ на свой вопрос.
действительно при передаче оно преобразовывается и принять его можно только через CHAR