AS400 CL 中的映射错误
我正在尝试获取记录字段的值,其中“MYVALUE”是 DDS LF MYVIEW 上的第一个键。我收到映射错误。我怀疑这是因为该字段被定义为 VARLEN (255A + VARLEN)。我有解决办法吗?
DCLF FILE(MYVIEW)
DCL VAR(&FIELD) TYPE(*CHAR) STG(*AUTO) LEN(255) +
VALUE('MYVALUE')
OVRDBF FILE(MYVIEW) POSITION(*KEY 1 *N &FIELD)
RCVF
Erreur de mappage de données sur DT44SRVREQ. (CPF5035, CPF5097)
14 - La longueur d'une zone de longueur variable, ou les données d'une
variable de sous-chaîne sont incorrectes.
Field File Type Length
CODERAPP44 MYVIEW VARCHAR 255
也许最好的解决方法是选择用 RPGLE 来做,但你可以这样做:
DCLF FILE(MYVIEW)
dcl &key *char 257
dcl &key_length *int 2 stg(*defined) defvar(&key 1)
dcl &key_value *char 255 stg(*defined) defvar(&key 3)
chgvar &key_value 'MYKEY'
chgvar &key_length (%checkr(' ' &key_value))
OVRDBF FILE(MYVIEW) POSITION(*KEY 1 *N &key)
RCVF