|
Joe, Thanks, it worked. I was also wondering if you could tell me where I could get a list of message ids and what they mean. Thanks Robert ----- Original Message ----- From: "Joe Pluta" <joepluta@PlutaBrothers.com> To: <java400-l@midrange.com> Sent: Saturday, December 08, 2001 9:14 AM Subject: RE: Need help with KeyedFile.positionCursor() > RObert, you're finding out one of the key differences between record level > access and data I/O the way we think of it. In RLA, the cursor is "on" a > record, not between them, so when you do a position and then a read next, > you actually get the NEXT record, not the one you positioned to. This is a > little different than what we do in RPG. I tried many combinations before I > realized that I could just trap the error and handle it. My SETLL code > looks like this: > > try { > keyedFile.positionCursor(keys, KeyedFile.KEY_LT); > } > catch (AS400Exception e) { > String msgID = e.getAS400Message().getID(); > if (msgID.equals("CPF5006")) > rewind(); > else > error(e); > } > catch (Exception e) { > error(e); > } > > And rewind looks like this: > > try { > file.positionCursorBeforeFirst(); > } > catch (Exception e) { > error(e); > } > > Notice that if I get an error on the positionCursor, I simply do a > positionCursorBeforeFirst. Now, if the file is empty, I think you might > still get an error. I don't remember. > > This code, and a whole bunch of other classes, are freely available in my > freeware classes: > > http://www.zappie.net/revitalization/Alpha_2_download.htm > > If you want more info, go here: > > http://www.zappie.net/Java/Techniques/JDB400/com_pbd.htm > > > Joe Pluta > www.plutabrothers.com > > > > > -----Original Message----- > > From: java400-l-admin@midrange.com > > [mailto:java400-l-admin@midrange.com]On Behalf Of Robert Upshall > > Sent: Thursday, December 06, 2001 9:51 PM > > To: java400-l@midrange.com > > Subject: Need help with KeyedFile.positionCursor() > > > > > > I happened to stumble accross a problem today by mistake. > > > > I have a KeyedFile object, say file. I am trying to mimic a > > setll and reade > > in RPG terms. The KeyedFile has 6 fields in the key but I'm only > > concerened > > with the first field. The first key field is a 2S 0 in DSS. > > Here is a code > > snipet. > > > > KeyedFile = new KeyedFile(system, path); > > > > file.setRecordFormat((new AS400FileRecordDescription(system, > > path)).retrieveRecordFormat()[0]); > > > > file.open(AS400File.READ_ONLY, 0, AS400File.COMMIT_LOCK_LEVEL_NONE); > > > > Object[] key = new Object[1]; > > key[0] = new BigDecimal("01"); > > > > file.positionCursorBefore(key); > > > > Record record = file.readNextEqual(key); > > > > The problem is, when the file only has one record it will not get a hit on > > the readNextEqual? > > > > What am I doing wrong here? > > > > > > Robert Upshall > > Professional Software of Amarillo > > (806) 358-8928 > > rupshall@psasoft.com > > > > > > _______________________________________________ > > This is the Java Programming on and around the iSeries / AS400 > > (JAVA400-L) mailing list > > To post a message email: JAVA400-L@midrange.com > > To subscribe, unsubscribe, or change list options, > > visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l > > or email: JAVA400-L-request@midrange.com > > Before posting, please take a moment to review the archives > > at http://archive.midrange.com/java400-l. > > _______________________________________________ > This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) mailing list > To post a message email: JAVA400-L@midrange.com > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l > or email: JAVA400-L-request@midrange.com > 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.