× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




Charles: Actually, life is better now at v5r4 as the DB will
automatically convert literals in most cases.

Thanks for the help. We are at 5.4 so I am not sure why it isn't
converting in this case.

Alan: Just curious. Why not use a service program?

I wound up switching to service program because I didn't have a good answer
to that question.

rob: Well, your PI shows a plethora of parameters, and no return
parameter...

Reading the SQL documentation, it appears if you are calling a stand-alone
program and using a parameter style of SQL, a reference to the return value
(output) is passed in after the input parameters. Parameter three was set
to the return value in my program. The rest of the parameters are extra
info passed in by the SQL parameter style about the function called.
Documentation was unclear if those were optional, so I included them.

As mentioned before though, it seems the ultimate problem was the literal
value I was using.

Thanks for all the input.



|------------>
| From: |
|------------>
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|Charles Wilt <charles.wilt@xxxxxxxxx> |
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| To: |
|------------>
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|"RPG programming on the IBM i / System i" <rpg400-l@xxxxxxxxxxxx> |
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Date: |
|------------>
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|06/30/2009 11:17 AM |
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Subject: |
|------------>
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|Re: SQL UDF From RPG Program |
>--------------------------------------------------------------------------------------------------------------------------------------------------|





The issue is that literals are VARCHAR and you've defined the parm as CHAR.

Using CHAR() around the literal is one fix, the other is to change the
program to accept VARCHAR, ie. VARYING, parameters.

This bites everybody at least once, check the archives :)

Actually, life is better now at v5r4 as the DB will automatically
convert literals in most cases.

HTH,
Charles

On Tue, Jun 30, 2009 at 10:47 AM, <MattLavinder@xxxxxxxxxxxxxxxxxxx> wrote:

What error are you getting and when are you getting it?

The message was "GETZIPDIST in DMIPGMS type *N not found".  I finally
managed to get when the function working via a service program call.  My
problem was the literal value I was passing in my call to the function.

The following code doesn't work:

SELECT ZIPCODE FROM ZIPCENTER WHERE GETZIPDIST(ZIPCOD, '12345') <= 25

But this code DOES work:

SELECT ZIPCODE FROM ZIPCENTER WHERE GETZIPDIST(ZIPCOD, CHAR('12345')) <=
25

I haven't had much experience with SQL UDF's on IBM i, so maybe the
external UDFs won't play well with literal values.  Using the CHAR
function
isn't a big deal, but out of curiosity, is there a way to define the UDF
so
the literal would be accepted without casting it?



______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________
--
This is the RPG programming on the IBM i / System i (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.


--
This is the RPG programming on the IBM i / System i (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..



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.