[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 574: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 630: sizeof(): Parameter must be an array or an object that implements Countable
Russian Progress User Group • передача ROWID через SET-PARAMETER
Страница 1 из 1

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

Добавлено: 14 ноя 2014, 10:35
dwp
вызов процедуры делается через 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"

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

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

Добавлено: 14 ноя 2014, 10:52
dwp
в общем то сам нашел ответ на свой вопрос.
действительно при передаче оно преобразовывается и принять его можно только через CHAR