<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=IFOCUR_%28HLI_function%29</id>
	<title>IFOCUR (HLI function) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=IFOCUR_%28HLI_function%29"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;action=history"/>
	<updated>2026-04-18T19:18:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=93935&amp;oldid=prev</id>
		<title>JAL: link repair</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=93935&amp;oldid=prev"/>
		<updated>2016-09-01T23:18:31Z</updated>

		<summary type="html">&lt;p&gt;link repair&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:18, 1 September 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l239&quot;&gt;Line 239:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 239:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;ul&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;ul&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You can only open a cursor to a record, value set, or list that has been established (named) by the saved compilation of one of the following calls: [[IFFIND (HLI function)|IFFIND]], [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IFFINDX &lt;/del&gt;(HLI function)|IFFNDX]], [[IFFWOL (HLI function)|IFFWOL]], [[IFFAC (HLI function)|IFFAC]], [[IFFDV (HLI function)|IFFDV]], [[IFSORT (HLI function)|IFSORT]], or [[IFSRTV (HLI function)|IFSRTV]]. &amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You can only open a cursor to a record, value set, or list that has been established (named) by the saved compilation of one of the following calls: [[IFFIND (HLI function)|IFFIND]], [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IFFNDX &lt;/ins&gt;(HLI function)|IFFNDX]], [[IFFWOL (HLI function)|IFFWOL]], [[IFFAC (HLI function)|IFFAC]], [[IFFDV (HLI function)|IFFDV]], [[IFSORT (HLI function)|IFSORT]], or [[IFSRTV (HLI function)|IFSRTV]]. &amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You cannot modify a record set that is established by an IFFIND, IFFNDX, IFFWOL, IFFAC, IFFDV, IFSORT, or IFSRTV while a cursor is open against it.&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You cannot modify a record set that is established by an IFFIND, IFFNDX, IFFWOL, IFFAC, IFFDV, IFSORT, or IFSRTV while a cursor is open against it.&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JAL</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=89185&amp;oldid=prev</id>
		<title>ELowell at 23:07, 12 July 2016</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=89185&amp;oldid=prev"/>
		<updated>2016-07-12T23:07:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:07, 12 July 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The conventions used on this page are described in [[HLI: Function &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;call list&lt;/del&gt;#Function call notation conventions|Function call notation conventions]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The conventions used on this page are described in [[HLI: Function &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;summary&lt;/ins&gt;#Function call notation conventions|Function call notation conventions]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=88830&amp;oldid=prev</id>
		<title>ELowell at 22:15, 11 July 2016</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=88830&amp;oldid=prev"/>
		<updated>2016-07-11T22:15:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:15, 11 July 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The conventions used on this page are described in [[HLI: Function call list#Function call notation conventions|Function call notation conventions]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Summary==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=87585&amp;oldid=prev</id>
		<title>ELowell: /* Syntax */</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=87585&amp;oldid=prev"/>
		<updated>2016-07-07T23:13:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Syntax&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:13, 7 July 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l71&quot;&gt;Line 71:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 71:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Subsequent IFFTCH or IFFTCHE calls fetch the values from the value set. When the cursor is closed using IFCCUR, the value set empties.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Subsequent IFFTCH or IFFTCHE calls fetch the values from the value set. When the cursor is closed using IFCCUR, the value set empties.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;IFOCUR with OF fieldname is similar to the Model 204 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SOUL_syntax&lt;/del&gt;#&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;FOR_EACH_VALUE_OF&lt;/del&gt;|FOR EACH VALUE OF]] statement.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;IFOCUR with OF fieldname is similar to the Model 204 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Value_loops&lt;/ins&gt;#&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;FOR_EACH_VALUE_statement&lt;/ins&gt;|FOR EACH VALUE OF]] statement.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;value set specification&amp;lt;/var&amp;gt; is optional and allows you to specify selection or ordering criteria against a value set. &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;value set specification&amp;lt;/var&amp;gt; is optional and allows you to specify selection or ordering criteria against a value set. &amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=87584&amp;oldid=prev</id>
		<title>ELowell: Created page with &quot; ==Summary== &lt;dl&gt; &lt;dt&gt;Description&lt;/dt&gt; &lt;dd&gt;The IFOCUR call (OPEN CURSOR) opens a cursor on the thread to a previously established found set.&lt;/dd&gt; &lt;dt&gt;Thread type&lt;/dt&gt; &lt;dd&gt;mult...&quot;</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=IFOCUR_(HLI_function)&amp;diff=87584&amp;oldid=prev"/>
		<updated>2016-07-07T23:10:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; ==Summary== &amp;lt;dl&amp;gt; &amp;lt;dt&amp;gt;Description&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;The IFOCUR call (OPEN CURSOR) opens a cursor on the thread to a previously established found set.&amp;lt;/dd&amp;gt; &amp;lt;dt&amp;gt;Thread type&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;mult...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Summary==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Description&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The IFOCUR call (OPEN CURSOR) opens a cursor on the thread to a previously established found set.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Thread type&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;multiple cursor IFSTRT&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;IFCALL function number&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;95&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;IFOCUR(RETCODE,CURSOR_SPEC,CURSOR_NAME,%VARBUF,%VARSPEC,FILE_SPEC)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Compile-only form&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;IFCALL function number: 106&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;IFOCURC|IFOCRC(RETCODE,CURSOR_SPEC,CURSOR_NAME,FILE_SPEC)&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Execute-only form&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt; IFCALL function number: 107&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;IFOCURE|IFOCRE(RETCODE,CURSOR_NAME,%VARBUF,%VARSPEC)&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Specify the parameters in the syntax order shown above.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Parameter&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;RETCODE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[O,i,r] The Model 204 return code is the required first parameter. The code is a binary integer value.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;CURSOR_SPEC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[I,c,r] The cursor specification is a required input parameter that indicates an existing found set of records or values that was established by a previously compiled call. Specify the found set as a character string using one of the following formats:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;{IN &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;setname&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ordering clause&amp;lt;/span&amp;gt;] | ON [list] &lt;br /&gt;
&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;listname&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ordering clause&amp;lt;/span&amp;gt;] | OF &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/span&amp;gt; &lt;br /&gt;
[&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value set specification&amp;lt;/span&amp;gt;]}&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
where: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
IN &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;setname&amp;lt;/span&amp;gt; specifies the compilation name for the previously compiled IFFIND, IFFNDX, IFFWOL, IFFAC, IFSORT, IFFDV, or IFSRTV call that established the set. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ON &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;listname&amp;lt;/span&amp;gt; specifies the name of a list of records. If the list does not exist, it is created in context of the default file or group.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ordering clause&amp;lt;/span&amp;gt; is optional and specifies ordering criteria, and it is valid only for cursors opened against an unsorted record set. Ordering criteria &amp;lt;i&amp;gt;cannot&amp;lt;/i&amp;gt; be specified for cursors opened against a value set or against a record set that is sorted (with IFSORT).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Specify the ordering clause using only the IN ORDER clause for sorted file ordering, or the following format line in full for B-tree ordering:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;IN [&amp;lt;u&amp;gt;ASCENDING&amp;lt;/u&amp;gt; | DESCENDING] ORDER [BY [EACH] &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/span&amp;gt;] &lt;br /&gt;
[(FROM &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value1&amp;lt;/span&amp;gt;) (TO &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value2&amp;lt;/span&amp;gt;)] [LIKE &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;pattern&amp;lt;/span&amp;gt;] &lt;br /&gt;
[BY [ASCENDING | DESCENDING] RECORD]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
where:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ASCENDING and DESCENDING are mutually exclusive keywords that indicate the order in which the record set will be processed. ASCENDING order is the default.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt; specifies the name of the field to be used for ordering the records.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The FROM and TO clauses specify the range of values for &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt;, where &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;value1&amp;lt;/var&amp;gt; specifies the beginning value, and &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;value2&amp;lt;/var&amp;gt; specifies the ending value. You can specify the range using both FROM and TO, or using only FROM (for all values greater than or equal to) or only TO (for all values less than or equal to).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Specifying a range limits the selection of records to process. If a range is specified, records that do contain the field are not processed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;pattern&amp;lt;/var&amp;gt; specifies a field value as a character string that is used to match against the record. Enclose the pattern string inside single quotation marks. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Specifying a pattern limits the selection of records to process. Only records that meet the pattern matching criteria are processed. See [[Record loops]] for a description of the valid pattern characters and examples of their use.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The BY ASCENDING|DESCENDING RECORD clause specifies how records within each Ordered Index value are processed by IFFTCH. If BY DESCENDING RECORD is not specified, IFFTCH processes records in ascending order.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Ordering clause options are similar to the ordering options available in a FOR EACH RECORD statement in SOUL. For IFOCUR, the WHERE|WITH retrieval conditions clause is not supported. For information about the FOR EACH RECORD IN ORDER statement, see [[Operations on multiply occurring fields]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt; specifies a value set specification that is compiled and saved as a part of the IFOCUR/IFOCURC compilation. At execution time (IFOCUR or IFOCURE) this specification is executed and a value set is created. A cursor then opens against this value set.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;Subsequent IFFTCH or IFFTCHE calls fetch the values from the value set. When the cursor is closed using IFCCUR, the value set empties.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
IFOCUR with OF fieldname is similar to the Model 204 [[SOUL_syntax#FOR_EACH_VALUE_OF|FOR EACH VALUE OF]] statement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;value set specification&amp;lt;/var&amp;gt; is optional and allows you to specify selection or ordering criteria against a value set. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;[FROM &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value1&amp;lt;/span&amp;gt;] [TO &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value2&amp;lt;/span&amp;gt;] [[NOT] LIKE &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;pattern&amp;lt;/span&amp;gt;] &lt;br /&gt;
[IN [&amp;lt;u&amp;gt;ASCENDING&amp;lt;/u&amp;gt; | DESCENDING] &lt;br /&gt;
[NUMERIC | CHARACTER | RIGHT-ADJSTED] ORDER]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
where:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
FROM and TO clauses are optional and specify a minimum (greater than or equal to) value (FROM), a maximum (less than or equal to) value (TO), or a range of values (FROM and TO) for selection criteria.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
LIKE|NOT LIKE clause is optional and specifies a string pattern for selection criteria. See [[Record loops]] for a description of the valid pattern characters and examples of their use.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ASCENDING and DESCENDING are mutually exclusive keywords that indicate the order in which the value set will be processed. ASCENDING order is the default. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
CHARACTER, RIGHT-ADJUSTED, and NUMERIC are mutually exclusive keywords:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CHARACTER specifies values sorted in standard EBCDIC collating sequence.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RIGHT-ADJUSTED specifies that values are temporarily right-justified before sorting so that shorter fields sort first.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;NUMERIC specifies a sort of number values with the usual numeric order relationships.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;CURSOR_NAME&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;CURSOR_NAME&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[I,s,r] The name to be assigned to the cursor is a required input parameter. Specify the cursor name as a short character string variable from 1 to 32 characters in length. The cursor name must be unique and must begin with a letter (A-Z or a-z) followed by one or more of the following characters: a letter, a digit (0-9), a period (.), or an underscore (_).&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;%VARBUF&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[I,c,o] The variable buffer is an optional input parameter that addresses a data area which accommodates up to 255 bytes of data per value. The buffer contains values that are defined by the %VARSPEC parameter, below, to be assigned to %variables. Specify a character string. For information about %variables, see [[Using variables and values in computation]].&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;%VARSPEC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[I,c,o] The variable specification describes the format of the data that is contained in the %variable parameter, and it lists the %variables to be assigned. %VARSPEC specifies the contents of the variable buffer, described above. Specify a character string that follows a LIST, DATA, or EDIT syntax. %VARSPEC is a required input parameter if %VARBUF is specified.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; For IFOCUR, use these parameters to assign values to the %variables in the ordering clause before executing the call.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;FILE_SPEC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[I,c,o/r] The file specification is a required input parameter only when using the OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt; form of the IFOCUR call. FILE_SPEC identifies the Model 204 file that will be updated to contain the new record. Specify the file as a character string using a standard Model 204 [[Basic SOUL statements and commands#IN clauses|IN clause]].&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Use the IFOCUR call to open a cursor to a record or a value in a set that has been named on a thread. You can open more than one cursor against the same named set to maintain different positions within the set. You can also open several cursors against several different record sets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When executing an IFOCURC (compile-only) call, Model 204 maps the cursor to the specified named set. The initial cursor position is located prior to the first record or value in the set. If ordering criteria is specified, Model 204 also validates the ordering criteria.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When executing an IFOCURE (execute-only) call, Model 204 performs the following actions:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Resets the cursor position prior to the first record or value in the set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Assigns percent variables (%variable) in the ordering clause, for any FROM/TO conditions or ordered field names that are specified.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using OF &amp;lt;i&amp;gt;fieldname&amp;lt;/i&amp;gt; to create value set specifications===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt; form of IFOCUR allows you to use IFOCUR to create a value set without first calling either IFFDV or IFSRTV. If OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt;... is specified, an IFOCUR/IFOCURC call does not reference a previously compiled HLI call.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Instead, a value set specification is compiled and saved as a part of the IFOCUR/IFOCURC compilation. At execution time, this specification is executed and a value set is created. A cursor is then opened against this value set.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;Subsequent IFFTCH or IFFTCHE calls will fetch the values from the value set. When the cursor is closed using IFCCUR, the value set is emptied.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Choosing IFOCUR or IFFDV and IFSRTV===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
IFOCUR with the OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt; clause performs much the same function as IFFDV. The main difference is that IFFDV creates a value set (and if IFSRTV is called, sorts it) and stores it in CCATEMP, whereas IFOCUR does not use CCATEMP space to save the compilation. Rocket Technical Support suggests the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The IFFDV call is more efficient if you are fetching through the same value set multiple times. This is especially true if you have a large value set or are sorting the values using the IFSRTV call. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The IFOCUR call with the OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt; clause is more efficient if you use this value set only once. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The IFOCUR call with the OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;fieldname&amp;lt;/var&amp;gt; clause is similar to the Model 204 FOR EACH VALUE OF statement. [[IFFDV (HLI function)|IFFDV]] and [[IFSRTV (HLI function)|IFSRTV]] are similar to the FDV (FIND ALL VALUES) and SORT VALUES statements.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For information about doing efficient value retrievals, see [[Basic SOUL statements and commands#Find statement|Find statement]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Record number processing for ORDERED fields===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
With IFOCUR, Ordered Index records can be processed in either ascending or descending order. Use the BY ASCENDING | DESCENDING RECORD option on the IFOCUR call to specify how you want records within each Ordered Index value to be processed by IFFTCH. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The first two columns of the following table show how IFFTCH processes records within the Ordered Index value when IN DESCENDING ORDER is specified and no record order is specified (or BY ASCENDING RECORD is specified).&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If no record order is specified, BY ASCENDING RECORD is assumed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The last two columns of the following table show how IFFTCH processes the records within Ordered Index value when IN DESCENDING ORDER and BY DESCENDING RECORD are both specified.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;caption&amp;quot; style=&amp;quot;width:600px&amp;quot;&amp;gt;IFFTCH processing of records within an Ordered Index&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;1&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
When either no record order or BY ASCENDING ORDER is specified ...&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;1&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
When IN DESCENDING ORDER and BY DESCENDING RECORD both are specified ...&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;LAST_NAME&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;RECNO&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;LAST_NAME&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;RECNO&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SMITH&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;08&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SMITH&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;09&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SMITH&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;09&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SMITH&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;08&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MARTIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;05&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MARTIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;07&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MARTIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;06&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MARTIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;06&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MARTIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;07&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MARTIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;05&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;01&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;04&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;02&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;03&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;03&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;02&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;04&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;JONES&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;01&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rules for cursor processing===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following rules apply to cursor processing: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You can only open a cursor to a record, value set, or list that has been established (named) by the saved compilation of one of the following calls: [[IFFIND (HLI function)|IFFIND]], [[IFFINDX (HLI function)|IFFNDX]], [[IFFWOL (HLI function)|IFFWOL]], [[IFFAC (HLI function)|IFFAC]], [[IFFDV (HLI function)|IFFDV]], [[IFSORT (HLI function)|IFSORT]], or [[IFSRTV (HLI function)|IFSRTV]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You cannot modify a record set that is established by an IFFIND, IFFNDX, IFFWOL, IFFAC, IFFDV, IFSORT, or IFSRTV while a cursor is open against it.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You can issue calls that modify a list while a cursor is open in it. Note, however, that a record that is added to a list while a cursor is open might or might not be processed, depending on its position relative to the current cursor location.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
You can successfully issue the IFOCUR call to be executed only for a cursor that is in a &amp;quot;closed&amp;quot; state. A cursor is in a closed state before it is first allocated in response to an IFOCUR call and thereafter, after an IFCCUR call is executed. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Coding example (COBOL)==&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;WORKING-STORAGE SECTION.&lt;br /&gt;
01  CALL-ARGS.&lt;br /&gt;
    05  RETCODE      PIC 9(5) COMP SYNC.&lt;br /&gt;
    05  FDSPEC       PIC X(12) VALUE &amp;quot;MAKE=&amp;#039;FORD&amp;#039;;&amp;quot;.&lt;br /&gt;
    05  DNAME        PIC X(7) VALUE &amp;quot;FDFORD;&amp;quot;.&lt;br /&gt;
    05  CURSPEC      PIC X(10) VALUE &amp;quot;IN FDFORD;&amp;quot;.&lt;br /&gt;
    05  CURSOR-NAME  PIC X(7) VALUE &amp;quot;CRFORD;&amp;quot;.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
PROCEDURE DIVISION.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
  CALL &amp;quot;IFFIND&amp;quot; USING RETCODE, FDSPEC, FDNAME.&lt;br /&gt;
  CALL &amp;quot;IFOCUR&amp;quot; USING RETCODE, CURSPEC, CURSOR-NAME.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This example illustrates a key concept in multiple cursor processing. In the example, IFOCUR opens a cursor (named CRFORD) to a found set (saved as FDFORD) that was established by the IFFIND call. Alternatively, the found set could have been established by an IFFNDX, IFFWOL, IFFDV, IFFAC, IFSORT, or IFSRTV call. In any case, a cursor can only reference an existing found set or a list, one that was established by a previously compiled call.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: HLI functions]]&lt;/div&gt;</summary>
		<author><name>ELowell</name></author>
	</entry>
</feed>