|
Hi Thorbjørn, I am not sure why you are using IFS classes when you are working with iSeries database files, but maybe I am outdated on this. See the enclosed keyed file example and sequential file access java program from jt400. If you need to create a member in a file, you could use the command call: CommandCall c = new CommandCall(system, "ADDPFM FILE(library/filename) MBR(membername)"); Best regards, Magne >-----Original Message----- >From: Thorbjørn Ravn Andersen [mailto:thunderaxiom@xxxxxxxxx] >Sent: Tuesday, February 28, 2006 07:51 AM >To: 'Java Programming on and around the iSeries / AS400' >Subject: Create a member in a given file? > >I need to create a member in a file. > >I have the full name of the member file in an IFSFile object (i.e. >/QSYS.LIB/XQ41EXI01.LIB/EDIPOMATCE.FILE/MACT9S0BYG.MBR) and I intend to >open it as a SequentialFile, create a Record per line and put in the >data I need, and write it to the SequentialFile. > >Currently my code looks pretty much like: > >---- > IFSFile logMember = new IFSFile(system, >logFile.getAbsolutePath() + "/" + member.getName()); > > if (logMember.exists()) { > throw new IllegalStateException("Member already exists in >error file " + logMember); > } > > SequentialFile sequentialFile = >getSequentialFileWithRecordFormatSet(system, logMember.getAbsolutePath()); > sequentialFile.open(); > sequentialFile.positionCursorAfterLast(); > > Record record1 = sequentialFile.getRecordFormat().getNewRecord(); > record1.setField(0, "UNB01PEVRETUR"); > sequentialFile.write(record1); >--.-. where getSequentialFile looks like > > private SequentialFile getSequentialFileWithRecordFormatSet(AS400 >system, String absolutePath) throws AS400Exception, >AS400SecurityException, InterruptedException, IOException, >PropertyVetoException { > AS400FileRecordDescription recordDescription = new >AS400FileRecordDescription( system, absolutePath); > > SequentialFile sequentialFile = new SequentialFile(system, >absolutePath); > RecordFormat[] retrieveRecordFormat = >recordDescription.retrieveRecordFormat(); > if (retrieveRecordFormat.length != 1) { > log.warn("file does not have exactly one member: " + >absolutePath); > } > RecordFormat recordFormat = retrieveRecordFormat[0]; > sequentialFile.setRecordFormat(recordFormat); > return sequentialFile; > } > >------ > >This is very similar to what I do when reading from a member, but the >only create method I can find creates the sequentialFile, not the >member. Apparently "create member" is not the right term to search for >either in google or the toolbox manual, so I am a bit lost now. I don't >grok Cobol, so I have no idea what it might be called instead. > >I would appreciate a gentle hint in the right direction. > >Best regards, >-- > Thorbjørn >-- >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.