× 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.



Jeff,

Not bad.

A couple of improvements.  You don't really need this:
        Declare InvalidDate Condition For '22007' ;
        Declare Continue HANDLER for InvalidDate
                Set CvtDate = 00010101;

Since your input is a date data type, by definition it _CAN'T_ be invalid.

The exception is if it is NULL.  But you handle that case by saying:
        Returns NULL on NULL input

If you were going the opposite way, from numeric to date, then would want the 
error handling above.


Also, as you see from my example, you don't need a temporary variable.  You can 
in SQL just like RPGLE, return the results of a expression directly.

I'll let you look up the rest in the SQL manual.  In particular, find out what 
the DETERMINISTIC does, it can be important for performance.

HTH,

Charles Wilt
--
iSeries Systems Administrator / Developer
Mitsubishi Electric Automotive America
ph: 513-573-4343
fax: 513-398-1121
 

> -----Original Message-----
> From: midrange-l-bounces@xxxxxxxxxxxx
> [mailto:midrange-l-bounces@xxxxxxxxxxxx]On Behalf Of Jeff Crosby
> Sent: Thursday, June 16, 2005 3:50 PM
> To: 'Midrange Systems Technical Discussion'
> Subject: RE: SQL insert - all fields
> 
> 
> > > Do yourself a favor and create a UDF to handle the conversion.
> > 
> > Oh crap.  Something else to learn. <vbg>
> > 
> > Thanks, I'll figure it out.
> 
> Woohoo!  I got it!
> 
> How does this look:
> 
> Create Function Dilgard/ISOToDec
>         (ISODate Date )
>         Returns Decimal(8,0)
>         Language SQL
>         Deterministic
>         Contains SQL
>         Returns NULL on NULL Input
>         No External Action
>         Set Option DbgView = *Source,
>                    DatFmt = *ISO
> BEGIN
>         Declare CvtDate DEC(8,0);
>         Declare InvalidDate Condition For '22007' ;
>         Declare Continue HANDLER for InvalidDate
>         Set CvtDate = 00010101;
>         Set CvtDate = Dec(Substr(Char(ISODate,ISO),1,4) Concat
>                           Substr(Char(ISODate,ISO),6,2) Concat
>                           Substr(Char(ISODate,ISO),9,2));
> 
>         Return CvtDate;
> END; 
> 
> I don't know what some of it means just yet, but it works!
> 
> -- 
> Jeff Crosby
> Dilgard Frozen Foods, Inc.
> P.O. Box 13369
> Ft. Wayne, IN 46868-3369
> 260-422-7531
> 
> The opinions expressed are my own and not necessarily the 
> opinion of my
> company.  Unless I say so.
> 
> 
> 
> -- 
> This is the Midrange Systems Technical Discussion 
> (MIDRANGE-L) mailing list
> To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/midrange-l.
> 
> 


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.