|
One thing I noticed. The AS/400 doesn't handle 63 digit numbers till v5r3. The max digits for earlier versions is only 31. HTH, Charles Wilt iSeries Systems Administrator / Developer Mitsubishi Electric Automotive America ph: 513-573-4343 fax: 513-398-1121 > -----Original Message----- > From: java400-l-bounces@xxxxxxxxxxxx > [mailto:java400-l-bounces@xxxxxxxxxxxx]On Behalf Of Bruce Jin > Sent: Wednesday, February 23, 2005 12:20 PM > To: Java Programming on and around the iSeries / AS400 > Subject: com.ibm.as400.access.ExtendedIllegalArgumentException: > numDigits (0) > > > I use toolbox to retrieve column information from AS400 > files. The code > is as follows: > > DatabaseMetaData dbMeta = connection.getMetaData(); > resultSet = dbMeta.getColumns(null, “mylib”, “myfile”, null); > while (resultSet.next()) { > int size = resultSet.getInt("COLUMN_SIZE") ; > } > > This code works on many AS400 boxes. But it fails on one > particular file > on an AS400 (V5R1). See error message below. Looking into > source code of > AS400PackedDecimal class, I guess a ‘0’ is used as field length to > initiate the class, causing the exception. But this file is a valid > file. This file does have a number of packed fields. Note: > when I move > this file to another as400, the code will work with no problem. > > TOOLBOX source code: > > public AS400PackedDecimal(int numDigits, int numDecimalPositions) { > > if (numDigits < 1 || numDigits > 63) { > throw new ExtendedIllegalArgumentException("numDigits (" + > String.valueOf(numDigits) + ")", > ExtendedIllegalArgumentException.RANGE_NOT_VALID); > } > if (numDecimalPositions < 0 || numDecimalPositions > numDigits) { > throw new ExtendedIllegalArgumentException("numDecimalPositions (" + > String.valueOf(numDecimalPositions) + ")", > ExtendedIllegalArgumentException.RANGE_NOT_VALID); > } > > > ERROR MESSAGE: > > com.ibm.as400.access.ExtendedIllegalArgumentException: numDigits (0): > The parameter value is out of the allowed range. > com.ibm.as400.access.AS400PackedDecimal.<init>(AS400PackedDeci > mal.java:46) > com.ibm.as400.access.SQLDecimal.<init>(SQLDecimal.java:58) > com.ibm.as400.access.SQLDataFactory.newData(SQLDataFactory.java:612) > com.ibm.as400.access.JDTypeInfoFieldMap.getValue(JDTypeInfoFie > ldMap.java:59) > com.ibm.as400.access.JDPrecisionFieldMap.getValue(JDPrecisionF > ieldMap.java:52) > com.ibm.as400.access.JDMappedRow.getSQLData(JDMappedRow.java:157) > com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResu > ltSet.java:3479) > com.ibm.as400.access.AS400JDBCResultSet.getInt(AS400JDBCResult > Set.java:2781) > com.ibm.as400.access.AS400JDBCResultSet.getInt(AS400JDBCResult > Set.java:2808) > MRCPS.MRCWRKF.getColumns(MRCWRKF.java:284) > > > Thanks. > > > > -- > This is the Java Programming on and around the iSeries / > AS400 (JAVA400-L) mailing list > To post a message email: JAVA400-L@xxxxxxxxxxxx > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/java400-l > or email: JAVA400-L-request@xxxxxxxxxxxx > Before posting, please take a moment to review the archives > at http://archive.midrange.com/java400-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.