ibm-information-center/dist/eclipse/plugins/i5OS.ic.dbp_5.4.0.1/rbafodbfpo.htm

102 lines
6.9 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Set a position in the file" />
<meta name="abstract" content="After a file is opened by a job, the system maintains a position in the file for that job. The file position is used in processing the file." />
<meta name="description" content="After a file is opened by a job, the system maintains a position in the file for that job. The file position is used in processing the file." />
<meta name="DC.subject" content="setting position in file, position, setting in a file, database file, setting a position" />
<meta name="keywords" content="setting position in file, position, setting in a file, database file, setting a position" />
<meta name="DC.Relation" scheme="URI" content="rbafobasicop.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/ovrdbf.htm" />
<meta name="DC.Relation" scheme="URI" content="../rbam6/rbam6clmain.htm" />
<meta name="DC.Relation" scheme="URI" content="rbafoefdel.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rbafodbfpo" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Set a position in the file</title>
</head>
<body id="rbafodbfpo"><a name="rbafodbfpo"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Set a position in the file</h1>
<div><p>After a file is opened by a job, the system maintains a position
in the file for that job. The file position is used in processing the file. </p>
<p> For example, if a program does a read operation requesting the next sequential
record, the system uses the file position to determine which record to return
to the program. The system then sets the file position to the record just
read, so that another read operation requesting the next sequential record
can return the correct record. The system keeps track of all file positions
for each job. In addition, each job can have multiple positions in the same
file.</p>
<p>The
file position is first set to the position specified in the POSITION parameter
on the Override with Database File (OVRDBF) command. If you do not use an
OVRDBF command, or if you take the default for the POSITION parameter, the
file position is set just before the first record in the member's access path.</p>
<div class="p">A program can change the current file position by using the appropriate
high-level language program file positioning operation (for example, SETLL
in the RPG/400<sup>®</sup> language
or START in the COBOL/400<sup>®</sup> language).
A program can also change the file position by using the Position Database
File (POSDBF) command. <div class="note"><span class="notetitle">Note:</span> File positioning by means of the OVRDBF command
does not occur until the next time the file is opened. Because a file can
be opened only once within a control language (CL) program, this command cannot
be used within a single CL program to affect what is read through the Receive
File (RCVF) command.</div>
</div>
<p>At end of file, after the last read, the file member is positioned to *START
or *END file position, depending on whether the program was reading forward
or backward through the file. The following diagram shows *START and *END
file positions. *START is at the top, with three records following, and *END
at the bottom.</p>
<br /><img src="rbafo540.gif" alt="Example of a file" /><br /><p>Only a read operation, force-end-of-data operation, high-level language
positioning operation, or specific CL command to change the file position
can change the file position. Add, update, and delete operations do not change
the file position. After a read operation, the file is positioned to the new
record. This record is then returned to your program. After the read operation
is completed, the file is positioned at the record just returned to your program.
If the member is open for input, a force-end-of-data operation positions the
file after the last record in the file (*END) and sends the end-of-file message
to your program.</p>
<p>For sequential read operations, the current file position is used to locate
the next or previous record on the access path. For read-by-key or read-by-relative-record-number
operations, the file position is not used. If POSITION(*NONE) is specified
at open time, no starting file position is set. In this case, you must establish
a file position in your program, if you are going to read sequentially.</p>
<p>If end-of-file delay was specified for the file on an OVRDBF command, the
file is not positioned to *START or *END when the program reads the last record.
The file remains positioned at the last record read. A file with end-of-file
delay processing specified is positioned to *START or *END only when a force-end-of-data
(FEOD) occurs or a controlled job end occurs. </p>
<p>You can also use the POSDBF command to set or change the current position
in your file for files opened using either the Open Database File (OPNDBF)
command or the Open Query File (OPNQRYF) command.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rbafobasicop.htm" title="These topics describe basic database file operations, including the read, update, write and delete operations.">Basic database file operations in programs</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="../rbam6/rbam6clmain.htm">Control language (CL)</a></div>
<div><a href="rbafoefdel.htm" title="End-of-file delay is a method of continuing to read sequentially from a database file (logical or physical) after an end-of-file condition occurs.">Wait for more records when end of file is reached</a></div>
</div>
<div class="relref"><strong>Related reference</strong><br />
<div><a href="../cl/ovrdbf.htm">Override with Database File (OVRDBF) command</a></div>
</div>
</div>
</body>
</html>