AS400 CL 声明/接收(DCLF RCVF)中的映射错误?

问题描述 投票:0回答:1

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
ibm-midrange
1个回答
0
投票

也许最好的解决方法是选择用 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   
© www.soinside.com 2019 - 2024. All rights reserved.