Re: EIM calls in RPGLE not working as expected
Jon Paris <[email protected]>
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <[email protected]> |
This is from a VERY quick look at the API, but shouldn't you have VALUE on the connectInfo parm to eimConnect ? Jon Paris [email protected] > On Oct 22, 2025, at 9:33 PM, [email protected] wrote: > > I need some help with some RPGLE EIM programming. The code is below. When > I run this the first dsply displays 0 and the RtvErr displays Succcess. The > second dsply displays 3021 but the RtvErr displays Success. The docs say > that rtcd should be 0 for success so that means the eimConnect failed but > the error message is Success. That doesn't make sense to me. Also, when I > run a C version of this program with the same values (at least I think they > have the same values), eimConnect does return a 0. I am horrible at C so I > was trying to write it in RPGLE. I have not gone any further with my code > to see if the eimConnect really was successful and it just has a screwy > rtcd. > > > > Does anybody have any experience with EIM coding and would you be willing to > help me out? > > > > ctl-opt > > dftactgrp(*no); > > > > dcl-pr eimCreateHandle int(10) extproc('eimCreateHandle'); > > handle likeds(EIMANDLE); > > connectInfo pointer value; > > eimrc like(eimrc); > > end-pr; > > > > dcl-pr eimConnect int(10) extproc('eimConnect'); > > handle likeds(EIMANDLE); > > connectInfo likeds(eimci); > > eimrc like(eimrc); > > end-pr; > > > > dcl-s rtcd int(10); > > dcl-ds handle likeds(EIMANDLE); > > dcl-s bindDn char(80) inz('cn=administrator'); > > dcl-s bindPw char(80) inz('myPassword'); > > dcl-c null x'00'; > > dcl-s errMsg@ pointer; > > dcl-s errMsg char(256) based(errMsg@); > > dcl-s rtnMsg char(52); > > > > dcl-pr eimErr2String pointer extproc('eimErr2String'); > > eimrc like(eimrc); > > end-pr; > > > > /include qsysinc/qrpglesrc,eim > > > > eimmpbc = %size(eimrc); > > > > rtcd = eimCreateHandle(handle > > :*null > > :eimrc); > > dsply rtcd; <== rtcd = 0 > > RtvErr(); <== RtvErr displays Success > > > > bindDn = %trim(bindDn) + null; > > bindPw = %trim(bindPw) + null; > > eimtype = *zero; > > eimotect00 = *zero; > > eimotect = *zero; > > eimbd00 = %addr(bindDn); > > eimbp00 = %addr(bindPw); > > rtcd = eimConnect(handle:eimci:eimrc); > > dsply rtcd; <== rtcd = 3021 > > RtvErr(); <== RtvErr displays Success > > > > *inlr = *on; > > > > > ///////////////////////////////////////////////////////////////////////// > > > > dcl-proc RtvErr; > > > > errmsg@ = eimErr2String(eimrc); > > RtnMsg = %str(errMsg@:%size(errMsg)); > > dsply rtnmsg; > > > > end-proc; > > -- > This is the RPG programming on IBM i (RPG400-L) mailing list > To post a message email: [email protected] > To subscribe, unsubscribe, or change list options, > visit: https://lists.midrange.com/mailman/listinfo/rpg400-l > or email: [email protected] > Before posting, please take a moment to review the archives > at https://archive.midrange.com/rpg400-l. > > Please contact [email protected] for any subscription related questions. > -- This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: [email protected] To subscribe, unsubscribe, or change list options, visit: https://lists.midrange.com/mailman/listinfo/rpg400-l or email: [email protected] Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l. Please contact [email protected] for any subscription related questions.