Hi Chuck,

Try modifying the T-SQL stored procedure EXECUTE line to tell it @Parm is
an OUTPUT parameter, like this:

execute ('Call RODDACUSTM.TEST_PARM(?)', @Parm OUTPUT) at LS_ISERIES

If you don't want to lose your passed value for @Parm, IIRC, you can code
it like this:

execute ('Call RODDACUSTM.TEST_PARM(?)', @ParmOutput = @Parm OUTPUT) at
LS_ISERIES

Mike



date: Thu, 17 Mar 2016 17:50:16 +0000
from: "Graves, Chuck" <cgraves@xxxxxxxxxxxxxx>
subject: T-SQL receiving parameter from iSeries

I have a T-SQL stored procedure on MS-SQL server, calling a procedure on
iSeries, which changes the parameter @Parm from "Called Parm" TO "Returned
Parm".
The iSeries SQLRPGLE program is:

C *entry plist
C parm Parm 15
C*
/free
eval Parm='Returned Parm';
/end-free
C eval *inlr = '1'
C return

I ran this command from within SQL400:

CREATE PROCEDURE RODDACUSTM/TEST_PARM(INOUT Parm CHAR ( 15))
LANGUAGE RPGLE SPECIFIC RODDACUSTM/TEST_PARM NOT DETERMINISTIC NO
SQL EXTERNAL NAME RODDACUSTM/TEST_PARM PARAMETER STYLE SQL

The T-SQL procedure is:

Code snippet....

DECLARE @parm CHAR(15)

set @parm = 'Called Parm'

execute ('Call RODDACUSTM.TEST_PARM(?)', @Parm) at LS_ISERIES

insert into test_parms
VALUES(@Parm)


The only values that end-up in the test_parm table are "Called Parm"

Why do I not get a parameter back?


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.