Language should be RPGLE (your external program is RPGLE), Parameter Style should be GENERAL if you are only receiving the single parameter in your RPGLE program. Not sure about the quotes on External Name. I never qualify, only use library list. If you don't qualify the Procedure it will create in the Current Library (QGPL if there is not a current lib).
This is for *SYS naming, if you are using *SQL naming to create I can't help.
No objects get created for CREATE PROCEDURE (External), it just registers the SP in the database (see QSYS2/SYSPROCS and QSYS2/SYSPARMS).
If you write a procedure in SQL Stored Procedure Language(SPL), then it will convert the SQLcode to C and compile a program object as well as register the SP in the database.
If you aren't checking the SQLSTATE in you T-SQL to see if you SP acutally worked, you might try testing in Run SQL Scripts or even STRSQL with these statements. The joblog might help you debug.
Create or Replace Variable PARM Char(15);
Set PARM = 'Called Parm';
Call RODDACUSTM/TEST_PARM(PARM);
Values PARM;
Drop Variable PARM; --when you are finished testing
--------------------------------------------
On Thu, 3/17/16, Graves, Chuck <cgraves@xxxxxxxxxxxxxx> wrote:
Subject: RE: T-SQL receiving parameter from iSeries
To: "RPG programming on the IBM i (AS/400 and iSeries)" <rpg400-l@xxxxxxxxxxxx>
Date: Thursday, March 17, 2016, 1:35 PM
All,
Thanks for the suggestions...
Thus far, NO combination of language(RPGLE or C), Contains
SQL or NO SQL(it does not), or parameter style has made a
difference. I'm still not getting the modified parameter
returned. Obviously I'm missing something...
Originally I compiled the program as RPGLE, got nothing, and
re-compiled is as SQLRPGLE even though it contains NO
SQL...Does it matter?
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Monnier, Gary
Sent: Thursday, March 17, 2016 11:06 AM
To: RPG programming on the IBM i (AS/400 and iSeries) <rpg400-l@xxxxxxxxxxxx>
Subject: RE: T-SQL receiving parameter from iSeries
CREATE PROCEDURE RODDACUSTM/TEST_PARM(
INOUT STATUS CHAR ( 15))
LANGUAGE C
SPECIFIC RODDACUSTM/TEST_PARM
NOT DETERMINISTIC
CONTAINS SQL
CALLED ON NULL INPUT
EXTERNAL NAME 'RODDACUSTM/TEST_PARM'
PARAMETER STYLE GENERAL;
The language is C because when you create a stored procedure
the system generates C code that it then compiles to create
the stored procedure. The C object calls your RPG
program. So, you are actually calling a C program that
is wrapped around your RPG program.
Thanks,
Gary Monnier
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Graves, Chuck
Sent: Thursday, March 17, 2016 10:50 AM
To: rpg400-l@xxxxxxxxxxxx
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?
[Rodda Paint Company]
Chuck Graves
Director of Information Systems
Rodda Paint Co.<
http://www.roddapaint.com>
6107 N. Marine Drive
Portland, Oregon 97203
(503) 737-6042
--
This is the RPG programming on the IBM i (AS/400 and
iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx
for any subscription related questions.
--
This is the RPG programming on the IBM i (AS/400 and
iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx
for any subscription related questions.
[Rodda Paint Company]
Chuck Graves
Director of Information Systems
Rodda Paint Co.<
http://www.roddapaint.com>
6107 N. Marine Drive
Portland, Oregon 97203
(503) 737-6042
--
This is the RPG programming on the IBM i (AS/400 and
iSeries) (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx
for any subscription related questions.
As an Amazon Associate we earn from qualifying purchases.