|
I didn't see this entry because of the way my email gets sorted. Sorry!
Using SQLtype(), you can define variables that go beyond the 64K char
limitation within RPG.
Found the chart below at
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Fdb2%2Frbafzlimtabs.htm
String Limits DB2 for i Limit
Maximum length of CHAR (in bytes) 327,656
Maximum length of VARCHAR (in bytes) 327,396
Maximum length of CLOB (in bytes) 2,147,483,647 <<--
Maximum length of GRAPHIC (in double-byte characters) 163,826
Maximum length of VARGRAPHIC (in double-byte characters) 163,696
Maximum length of DBCLOB (in double-byte characters) 1,073,741,823
Maximum length of BINARY (in bytes) 32,7656
Maximum length of VARBINARY (in bytes) 32,7396
Maximum length of BLOB (in bytes) 2,147,483,647
Maximum length of serialized XML (in bytes) 2,147,483,647 <<--
Maximum length of character constant 32,740
Maximum length of a graphic constant 16,370
Maximum length of binary constant 32,740
Maximum length of concatenated character string 2,147,483,647
Maximum length of concatenated graphic string 1,073,741,823
Maximum length of concatenated binary string 2,147,483,647
Maximum number of hexadecimal constant digits 32,762
Maximum length of catalog comments 20,007
Maximum length of column label (in bytes) 60
Maximum length of SQL routine label 128
Maximum length of table, package, or alias label 50
Maximum length of C NUL-terminated 32,7396
Maximum length of C NUL-terminated graphic 163,696
Steve Needles
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of RPGLIST
Sent: Thursday, August 22, 2013 3:37 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: RE: using a DS with a stored procedure xml method
The only problem I see here is that a char has a limit of 65,535 so I'm a
little lost on how you can pass 2 gb of data in an xml doc....
You can format the entire pile of data as xml and pass it as an input
parameter field that is described as a CHAR that is as big as you
need, or as a BLOB or CLOB as needed (you will need to use SQL to
define these data-types)).
Define the xml's structure with repeating structures to represent the
multiple rows.
<xml>
<row>
<field1 />
<field2 />
<field3>some data</field3>
</row>
<row>
<field1 />
<field2 />
<field3>some more data</field3>
</row>
</xml>
Then describe in your RPG program a DS that describes each row as an
occurrence for as many as is reasonable (if this varies or can be
greater than the DS can handle, you can use %handler to parse portions
of the XML at a time).
DPlist PR Extpgm('program')
D Parm_XML 31000
*
DPlist PI
D Parm_XML 31000
D XML_in ds Qualified
D row likeDS(rowDS) dim(2500)
.
.
.
D rowDs ds qualified based(only_a_template)
D field1 10
D field2 3 0
D field3 17
.
.
Then use the XML-INTO verb to parse the data from the XML input
parameter into the DS you defined.
XML-INTO(E) xml_in %xml(Parm_xml:'allowmissing=yes allowextra=yes
case=any');
Then just process the row ds as you normally would any other qualified
ds.
Performance is surprisingly good in our interactive web
environment...your results may vary, blah, blah, blah...:-)
Good luck!
BTW - this info is all in IBM's RPG manuals too.
Steve Needles
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of RPGLIST
Sent: Thursday, August 22, 2013 9:20 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: using a DS with a stored procedure
I'm looking at using a stored procedure (which references an existing
RPGLE program) for connecting to an external process. I would need to
be able to send multiple rows.
We have a windows app that would call a stored procedure and pass it
approximately 59 fields of data, but it can contain up to 99 rows of
data.
Is this even possible? I was thinking of just defining the full length
of the data structure and using that as a clob field or something
along that lines but it doesn't sound very efficient.
Websphere and a web service is not an option, the owner flat out shot
down spending the money for that. So I'm back to square one.
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list To post a message email:
RPG400-L@xxxxxxxxxxxx<mailto: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<mailto:RPG400-L-request@xxxxxxxxxxxx>
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
________________________________
This communication, including attachments, is confidential, may be
subject to legal privileges, and is intended for the sole use of the
addressee.
Any use, duplication, disclosure or dissemination of this
communication, other than by the addressee, is prohibited. If you have
received this communication in error, please notify the sender
immediately and delete or destroy this communication and all copies.
TRVDiscDefault::1201
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(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 (AS/400 and iSeries) (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 (AS/400 and iSeries) (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 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.