That was the problem. Thank you.
Mark Walter
Paragon Consulting Services, Inc.
IBM Certified System i Specialist
717-764-7909 Ext. 26
mwalter@xxxxxxxxxxxxxxx
www.paragon-csi.com
Mark Walter <MWalter@xxxxxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
02/15/2008 03:04 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc
Subject
RE: SQL Function
Ok. Will give that a shot.
Mark Walter
Paragon Consulting Services, Inc.
IBM Certified System i Specialist
717-764-7909 Ext. 26
mwalter@xxxxxxxxxxxxxxx
www.paragon-csi.com
"Haas, Matt (CL Tech Sv)" <matt.haas@xxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
02/15/2008 03:03 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc
Subject
RE: SQL Function
Is your input parameter defined as 20i 0? If it's just 10i 0, try defining
it as an INTERGER instead of a BIGINT.
Matt
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Mark Walter
Sent: Friday, February 15, 2008 2:59 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: SQL Function
Not so fast. Ok, now I'm getting the function to return a value, but the
sub-procedure is not getting the input parameters. I tried the CAST to a
BIGINT, but it's still not getting anything. Again, here is the sql to
create fhe function.
DROP FUNCTION GETPRGDATE;
CREATE FUNCTION GETPRGDATE (BIGINT)
RETURNS BIGINT
EXTERNAL NAME 'ELTEXEDI/GETPRGDATE(GETPRGDATE)'
LANGUAGE RPGLE
PARAMETER STYLE GENERAL
NOT DETERMINISTIC
NO SQL;
And, here is the code to test it.
create table qtemp/testtbl
(field1 bigint not null,
field2 bigint not null);
insert into qtemp/testtbl
values(1,GETPRGDATE(CAST(180 AS BIGINT)));
Again, I'm on V5R1, using RUNSQLSTM..
Mark Walter
Paragon Consulting Services, Inc.
IBM Certified System i Specialist
717-764-7909 Ext. 26
mwalter@xxxxxxxxxxxxxxx
www.paragon-csi.com
Mark Walter <MWalter@xxxxxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
02/15/2008 02:39 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc
Subject
Re: SQL Function
BINGO! ! ! !
That was it......
Thanks so much for all that helped....
Mark Walter
Paragon Consulting Services, Inc.
IBM Certified System i Specialist
717-764-7909 Ext. 26
mwalter@xxxxxxxxxxxxxxx
www.paragon-csi.com
Michael_Schutte@xxxxxxxxxxxx
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
02/15/2008 02:31 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc
Subject
Re: SQL Function
This could be a good catch.... in the ones that I have set up.... I
have
PARAMETER STYLE GENERAL
I was having issues before specifying this as GENERAL... I believe the
default is SQL.
Michael Schutte
Admin Professional
Bob Evans Farms, Inc.
rpg400-l-bounces@xxxxxxxxxxxx wrote on 02/15/2008 02:28:50 PM:
Mark,
I don't have much expertise with SQL functions but, don't
you need a "PARAMETER STYLE" clause?
Regards,
Luis Rodriguez
--- rpg400-l-request@xxxxxxxxxxxx wrote:
------------------------------
message: 4
date: Fri, 15 Feb 2008 10:31:48 -0500
from: Mark Walter <...@xxxxxxxxxxxxxxx>
subject: SQL Function
I have an external SQL Function written in RPG that's
giving me fits.
Box is V5R1. No SQL Development tools, so all is
RUNSQLSTM. The function
is an RPGLE SRVPGM, one sub-procedure that basically
returns a numeric
representation of an YYYYMMDD date which is the current
date - the number
of days passed. The service program works as written.
Here's what I used
to create the function.
DROP FUNCTION GETPRGDATE;
CREATE FUNCTION GETPRGDATE (INTEGER)
RETURNS INTEGER
EXTERNAL NAME 'ELTEXEDI/GETPRGDATE(GETPRGDATE)'
LANGUAGE RPGLE
NOT DETERMINISTIC
NO SQL;
Here's how I'm testing it.
create table qtemp/testtbl
(field1 integer not null,
field2 integer not null);
insert into qtemp/testtbl
values(1,GETPRGDATE(180));
Here is the result:
FIELD1 FIELD2
000001 1 0
Any idea what I'm missing?
Thanks,
Mark
Luis Rodriguez
IBM Certified Systems Expert
eServer i5 iSeries Technical Solutions
As an Amazon Associate we earn from qualifying purchases.