Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1271451
  • 博文数量: 287
  • 博客积分: 11000
  • 博客等级: 上将
  • 技术积分: 3833
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-16 08:43
文章分类
文章存档

2013年(15)

2012年(17)

2011年(17)

2010年(135)

2009年(85)

2008年(18)

分类: 系统运维

2010-06-18 15:35:46

Retrieve Data Area D QwcRdtAA pr ExtPgm('QWCRDTAA') D aRcvVar Like(DtaAraRcv) D aRcvVarLen 10i 0 Const D aDtaAra 20a Const D aStrPos 10i 0 Const D aDtaLen 10i 0 Const D ApiError Like(ApiError) D DtaAraRcv ds D AraBytes 10i 0 D AraBytesOut 10i 0 D AraDtaType 10a D AraLibrary 10a D AraLength 10i 0 D AraDecimals 10i 0 D AraValue 2000a D RtvDtaAra pr 2000a Varying D iDtaAra 10a Const D iDtaAraLib 10a Const Options(*NoPass) D iStrPos 5p 0 Const Options(*NoPass) D iDtaLen 5p 0 Const Options(*NoPass) P RtvDtaAra b Export D RtvDtaAra pi 2000a Varying D iDtaAra 10a Const D iDtaAraLib 10a Const Options(*NoPass) D iStrPos 5p 0 Const Options(*NoPass) D iDtaLen 5p 0 Const Options(*NoPass) D wDtaAra s 10a D wDtaAraLib s 10a D wStrPos s 5p 0 D wDtaLen s 5p 0 D qDtaAra s 20a * Prepare all input parameters... C Eval wDtaAra = iDtaAra C If %Parms < 2 C Eval wDtaAraLib = '*LIBL' C Else C Eval wDtaAraLib = iDtaAraLib C EndIf C If %Parms < 3 C Eval wStrPos = 1 C Else C Eval wStrPos = iStrPos C EndIf * Prepare API parameters... C If wDtaAra = '*LDA' or C wDtaAra = '*GDA' or C wDtaAra = '*PDA' C Eval wDtaAraLib = *Blanks C EndIf C Eval qDtaAra = wDtaAra + wDtaAraLib * Call the API to retrieve the data area... C Reset ApiError C CallP QwcRdtAA(DtaAraRcv : C %Size(DtaAraRcv): C qDtaAra : C -1 : C 2000 : C ApiError ) * If any errors were detected then return an error flag... C If AraBytesOut = 0 C Return '*ERROR' C EndIf * Return the data area value... C If %Parms < 4 C Eval wDtaLen = araLength - wStrPos + 1 C Else C Eval wDtaLen = iDtaLen C EndIf C Return %Subst(AraValue : wStrPos : wDtaLen) P RtvDtaAra e Thanks to Jonathan Mason
 
阅读(1176) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~