|
The SQL scalar function DayOfWeek _only_accepts native date data types as its
parameter.
Unfortunately, RPG/400 does not support native date data types.
My 8.0 date is in the format mmddyyyy because I got it from *DATE.
I keyed this into my RPG/400 program, as suggested by Mike Cravitz, but it
did not work for me In all probability El Typo is missing some little
ingredient that is non-obvious to me.
C/Exec SQL
C+ Set :WkDay = DayOfWeek( Date( Subst( Digits( :Today ), 5, 4))
C+ || '-'
C+ ||
C+ Subst( Digits(
:Today), 1, 2)
C+ || '-'
C+ ||
C+ Subst( Digits(
:Today ), 3, 2))
C/End-Exec
It told me that Token : was not valid
valid tokens being OPTION RESULT CONNECTION TRANSACTION
which is what I got before doing ths Substringing
I my experience, the SEU editor, when complaining about how I have done SQL
statement, has zero knowlege of how host variables are defined by host
program, so the problem here is with SET :WKDAY not the rest of the statement.
I saved my WRKMBRPDM effort anyway & tried to compile it & got SQL0104
position 13 Token : was not valid ... but when I counted out what was
position 13 that was the equal sign after :WKDAY
It is possible that in RPG/400, SET is only valid for updating a file, such
as in this example from the IBM class in SQL/400
EXEC SQL
UPDATE EMPLOYEE
SET SALARY=:SALARY
WHERE EMPNO=:EMPNO
END SQL
There was the question whether SET was valid for host variables in RPG/400,
suggesting that I use the SQL special register CURRENT DATE or CURRENT_DATE
instead of :TODAY.
Rob Berent had suggested that TODAY is a reserved word & should remove the
colon from in front of it ... how then does the DATE field get populated ...
in my initial tries with this I had wanted to use TODAY DATE but later
explorations get at historical dates.
Then I tried what Pete Hall had suggested.
C/Exec SQL
C+ Values
C+ DayOfWeek( Date( Subst( Digits( :Today ), 5, 4))
C+ || '-'
C+ ||
C+ Subst( Digits(
:Today), 1, 2)
C+ || '-'
C+ ||
C+ Subst( Digits(
:Today ), 3, 2))
C+ INTO :WKDAY
C/End-Exec
and I got the error message
Keyword VALUES not expected
Valid tokens END SET CALL DROP LOCK OPEN ALTER CLOSE FETCH partial list
This tells me that if we use VALUES, something has to be in front of it like
perhaps SET VALUES ?
So I returned my code to
C/Exec SQL
C+ SET WKDAY =
C+ DayOfWeek( Date( Subst( Digits( :Today ), 5, 4))
C+ || '-'
C+ ||
C+ Subst( Digits(
:Today), 1, 2)
C+ || '-'
C+ ||
C+ Subst( Digits(
:Today ), 3, 2))
C/End-Exec
to check out this notion that SET cannot work with a host variable & wherever
the data goes needs to go to some field only in the SQL statement, then I
would need to figure out if I could put the array (Sunday Monday Tuesday
Wednesday Thursday Friday Saturday) in the same statement & extract which
element I need using the element defined by the SET.
But of course I got
Token WKDAY was not valid
valid tokens being OPTION RESULT CONNECTION TRANSACTION
so I am still at a cute idea that I have not yet learned how to implement
MacWheel99@aol.com (Alister Wm Macintyre) (Al Mac)
AS/400 Data Manager & Programmer for BPCS 405 CD Rel-02 mixed mode (twinax
interactive & batch) @ http://www.cen-elec.com Central Industries of
Indiana--->Quality manufacturer of wire harnesses and electrical
sub-assemblies - fax # 812-424-6838
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.