LSTRLOB parameter: Difference between revisions
No edit summary |
m (add <code>s) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 14: | Line 14: | ||
</dl> | </dl> | ||
==Description== | ==Description== | ||
When | When <var>LSTRLOB</var> is 1, [[SOUL]] programs can use normal field reference syntax to retrieve or set the value of a Lob field. Otherwise (<code>LSTRLOB=0</code>), access to Lob fields must use the <var>Buffer</var> syntax. <var>LSTRLOB</var> is generally available as of Model 204 V7.5. | ||
The default value of | The default value of <var>LSTRLOB</var> is 1. | ||
The "normal field reference syntax" applies to all uses of a <var>BLOB</var> or <var>CLOB</var> field name <b>except</b> for the <var>Note</var> statement. | The "normal field reference syntax" applies to all uses of a <var>BLOB</var> or <var>CLOB</var> field name <b>except</b> for the <var>[[Record loops#Note statement|Note]]</var> statement. | ||
The types of allowed "normal field references" are shown in the following table, which assumes that field <code>LOB</code> has the <var>BLOB</var> or <var>CLOB</var> attribute: | The types of allowed "normal field references" are shown in the following table, which assumes that field <code>LOB</code> has the <var>BLOB</var> or <var>CLOB</var> attribute: | ||
<table> | <table> | ||
<tr><th>Type of reference</th><th>Examples</th></tr> | <tr class="head"><th>Type of reference</th><th>Examples</th></tr> | ||
<tr>< | <tr><td nowrap>Used in expression</td><td> | ||
<p class="code">%s = LOB | <p class="code">%s = LOB | ||
Line 30: | Line 30: | ||
%xmNode:addElement('info', LOB)</p></td></tr> | %xmNode:addElement('info', LOB)</p></td></tr> | ||
<tr>< | <tr><td><var>Print</var> statement</td><td> | ||
<p class="code">print 'Value is:' and LOB</p></td></tr> | <p class="code">print 'Value is:' and LOB</p></td></tr> | ||
<tr>< | <tr><td>Field updates</td> | ||
<td> | <td> | ||
<p class="code">%s1 = 'x':left(3000, pad='x')<br/>store record<br/> LOB = %s1<br/>end store</p> | <p class="code">%s1 = 'x':left(3000, pad='x')<br/>store record<br/> LOB = %s1<br/>end store</p> | ||
<p class="code">add LOB = %s2</p> | <p class="code">add LOB = %s2</p> | ||
Note | <p class="note"><b>Note:</b> The normal field reference syntax in the <var>Store Record</var> and <var>Add</var> statements does not have a provision for the <var>Reserve</var> clause which is available on the <var>Buffer</var> syntax. This is not an issue for a <var>FILEORG</var> X'100' file, because the <var>Reserve</var> clause is ignored in those files (Lob pages are chained rather than allocated contiguously).</p> | ||
<p class="code">change LOB to %s3</p>Note | |||
<p class="code">change LOB to %s3</p> | |||
<p class="note"><b>Note:</b> The <b>only</b> type of <var>Change</var> statement allowed for a field with the <var>MINLOBE</var> attribute is this form, using the normal field reference syntax.</p></td></tr> | |||
</table> | </table> | ||
Latest revision as of 19:52, 20 July 2018
Treat LOBs as Longstrings
Summary
- Default value
- 1
- Parameter type
- System
- Where set
- System manager
- Related products
- All
- Introduced
- Sirius Mods Version 7.7
Description
When LSTRLOB is 1, SOUL programs can use normal field reference syntax to retrieve or set the value of a Lob field. Otherwise (LSTRLOB=0
), access to Lob fields must use the Buffer syntax. LSTRLOB is generally available as of Model 204 V7.5.
The default value of LSTRLOB is 1.
The "normal field reference syntax" applies to all uses of a BLOB or CLOB field name except for the Note statement.
The types of allowed "normal field references" are shown in the following table, which assumes that field LOB
has the BLOB or CLOB attribute:
Type of reference | Examples |
---|---|
Used in expression |
%s = LOB %t = LOB:substring(%pos, %len) %xmNode:addElement('info', LOB) |
Print statement |
print 'Value is:' and LOB |
Field updates |
%s1 = 'x':left(3000, pad='x') add LOB = %s2 Note: The normal field reference syntax in the Store Record and Add statements does not have a provision for the Reserve clause which is available on the Buffer syntax. This is not an issue for a FILEORG X'100' file, because the Reserve clause is ignored in those files (Lob pages are chained rather than allocated contiguously). change LOB to %s3 Note: The only type of Change statement allowed for a field with the MINLOBE attribute is this form, using the normal field reference syntax. |