|
First off. I'm an SQL newbie.
I wrote an SQLRPGLE program to read thru a file. This file has Date Data
type fields in it, defined as DATFMT(*ISO). I originally defined an
external DS to put the record into, but I have since defined my DS in the
program. No matter what I do, I can't get this to compile. It wants to
define the Date fields as 8 positions long, not 10.
Here is the compiler listing showing my data structure for the file:
27
28 D MasterRcd DS
29 D MS8STA 1
30 D MS8LOAN# 10S 0
31 D MS8DTE1 D DatFmt(*ISO)
32 D MS8DTE2 D DatFmt(*ISO)
33
Here is the information from the SQL with the error:
94 D DS
OPEN
95 D SQL_00000 1 2B 0 INZ(64)
length of header
96 D SQL_00001 3 4B 0 INZ(3)
statement number
97 D SQL_00002 5 8B 0 INZ(0)
invocation mark
98 D SQL_00003 9 9A INZ('0')
data is okay
99 D SQL_00004 10 63A
end of header
100 D SQL_00005 64 64A
end of header
101 D DS
FETCH
102 D SQL_00006 1 2B 0 INZ(64)
length of header
103 D SQL_00007 3 4B 0 INZ(4)
statement number
104 D SQL_00008 5 8B 0 INZ(0)
invocation mark
105 D SQL_00009 9 9A INZ('0')
data is okay
106 D SQL_00010 10 63A
end of header
107 D SQL_00011 65 65A
MS8STA
108 D SQL_00012 66 75S 0
MS8LOAN#
109 D SQL_00013 76 83D DATFMT(*ISO)
MS8DTE1
======> aaaaaaaaaaaaaaa
*RNF0525 20 a 006900 The length must be 10 for date format *ISO-.
110 D SQL_00014 84 91D DATFMT(*ISO)
MS8DTE2
======> aaaaaaaaaaaaaaa
*RNF0525 20 a 006900 The length must be 10 for date format *ISO-.
111 D DS
CLOSE
112 D SQL_00015 1 2B 0 INZ(64)
length of header
113 D SQL_00016 3 4B 0 INZ(5)
statement number
114 D SQL_00017 5 8B 0 INZ(0)
invocation mark
115 D SQL_00018 9 9A INZ('0')
data is okay
116 D SQL_00019 10 63A
end of header
117 D SQL_00020 64 64A
end of header
Here is my SQL Statements....We found the Set Option stuff in a
book, but are not sure if we are using it correctly.
126 C*Exec SQL
127 C* Set Option DatFmt = *ISO,
128 C* DatSep = '-'
129 C*End-Exec
130 C*Exec SQL
131 C* Declare MasterTable Cursor
132 C* For Select *
133 C* From MSGLIB/MSGC08
134 C* Where (MS8STA = 'A')
135 C* Order By MS8LOAN#
136 C* For Update of MS8STA, MS8DTE2
137 C*End-Exec
This is what the SQL pre-compiler listing has for the fields:
Data Names Define Reference
MS8DTE1 31 DATE(8) IN MASTERRCD
MS8DTE1 64 DATE(10) COLUMN (NOT NULL) IN
MSGLIB.MSGC08
MS8DTE2 32 DATE(8) IN MASTERRCD
MS8DTE2 **** COLUMN
64 200
MS8DTE2 64 DATE(10) COLUMN (NOT NULL) IN
MSGLIB.MSGC08
I can look at the data in the file, it is in standard *ISO format dates.
What am i doing wrong ? Specific links to manuals are recieved with joy. I
have both the SQL/400 Developer's Guide and SQL/400 by example. I have not
read them cover to cover yet, but I haven't found anything yet that tells me
what to do.
TIA.
Cyndi B.
Bosie, ID
+---
| 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.