ibm-information-center/dist/eclipse/plugins/i5OS.ic.cli_5.4.0.1/rzadpfnpopt.htm

137 lines
8.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="reference" />
<meta name="DC.Title" content="SQLParamOptions - Specify an input array for a parameter" />
<meta name="DC.subject" content="SQLParamOptions, function, description, Parameter Options, function" />
<meta name="keywords" content="SQLParamOptions, function, description, Parameter Options, function" />
<meta name="DC.Relation" scheme="URI" content="rzadphdapi.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1999, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1999, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzadpfnpopt" />
<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>SQLParamOptions</title>
</head>
<body id="rzadpfnpopt"><a name="rzadpfnpopt"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">SQLParamOptions - Specify an input array for a parameter</h1>
<div><div class="section"><h4 class="sectiontitle">Purpose</h4><p><samp class="codeph">SQLParamOptions()</samp> provides
the ability to set multiple values for each parameter set by <samp class="codeph">SQLBindParameter()</samp>.
This allows the application to insert multiple rows into a table on a single
call to <samp class="codeph">SQLExecute()</samp> or <samp class="codeph">SQLExecDirect()</samp>. </p>
</div>
<div class="section"><h4 class="sectiontitle">Syntax</h4><div class="p">
<pre>SQLRETURN SQLParamOptions (SQLHSTMT StatementHandle,
SQLINTEGER Crow,
SQLINTEGER *FetchOffsetPtr); </pre>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Function arguments</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="100%" frame="hsides" border="1" rules="all"><caption>Table 1. SQLParamOptions arguments</caption><thead align="left"><tr><th align="left" valign="bottom" width="27.881040892193308%" id="d0e59">Data type</th>
<th align="left" valign="bottom" width="20.63197026022305%" id="d0e61">Argument </th>
<th align="left" valign="bottom" width="10.223048327137546%" id="d0e63">Use </th>
<th align="left" valign="bottom" width="41.2639405204461%" id="d0e65">Description </th>
</tr>
</thead>
<tbody><tr><td align="left" valign="top" width="27.881040892193308%" headers="d0e59 ">SQLHSTMT </td>
<td align="left" valign="top" width="20.63197026022305%" headers="d0e61 "><em>StatementHandle</em> </td>
<td align="left" valign="top" width="10.223048327137546%" headers="d0e63 ">Input </td>
<td align="left" valign="top" width="41.2639405204461%" headers="d0e65 ">Statement handle.</td>
</tr>
<tr><td align="left" valign="top" width="27.881040892193308%" headers="d0e59 ">SQLINTEGER </td>
<td align="left" valign="top" width="20.63197026022305%" headers="d0e61 "><em>Crow </em> </td>
<td align="left" valign="top" width="10.223048327137546%" headers="d0e63 ">Input </td>
<td align="left" valign="top" width="41.2639405204461%" headers="d0e65 ">Number of values for each parameter. If this
is greater than 1, then the <span class="synph"><span class="var">rgbValue</span></span> argument in <samp class="codeph">SQLBindParameter()</samp> points
to an array of parameter values, and <span class="synph"><span class="var">pcbValue</span></span> points
to an array of lengths.</td>
</tr>
<tr><td align="left" valign="top" width="27.881040892193308%" headers="d0e59 ">SQLINTEGER *</td>
<td align="left" valign="top" width="20.63197026022305%" headers="d0e61 "><em>FetchOffsetPtr</em> </td>
<td align="left" valign="top" width="10.223048327137546%" headers="d0e63 ">Output (deferred)</td>
<td align="left" valign="top" width="41.2639405204461%" headers="d0e65 "> Not currently used.</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Usage</h4><p>This function can be used
with <samp class="codeph">SQLBindParameter()</samp> to set up a multiple-row INSERT statement.
In order to accomplish this, the application must allocate storage for all
of the data being inserted. This data must be organized in a row-wise fashion.
This means that all of the data for the first row is contiguous, followed
by all the data for the next row, and so on. The <samp class="codeph">SQLBindParameter()</samp> function
should be used to bind all of the input parameter types and lengths. In the
case of a multiple-row INSERT statement, the addresses provided on <samp class="codeph">SQLBindParameter()</samp> are
used to reference the first row of data. All subsequent rows of data are referenced
by incrementing those addresses by the length of the entire row.</p>
<p>For
instance, the application intends to insert 100 rows of data into a table,
and each row contains a 4-byte integer value, followed by a 10-byte character
value. To do this, the application allocates 1400 bytes of storage, and fills
each 14-byte piece of storage with the appropriate data for the row.</p>
<p>Also, the indicator pointer passed on the <samp class="codeph">SQLBindParameter()</samp> must
reference an 800-byte piece of storage. This is used to pass in any null
indicator values. This storage is also row-wise, so the first 8 bytes are
the 2 indicators for the first row, followed by the 2 indicators for the next
row, and so on. The <samp class="codeph">SQLParamOptions()</samp> function is used by
the application to specify how many rows are inserted on the next processing
of an INSERT statement using the statement handle. The INSERT statement must
be of the multiple-row form. For example:</p>
<pre> INSERT INTO CORPDATA.NAMES ? ROWS VALUES(?, ?)</pre>
</div>
<div class="section"><h4 class="sectiontitle">Return codes</h4><div class="p"> <ul><li>SQL_SUCCESS </li>
<li>SQL_SUCCESS_WITH_INFO </li>
<li>SQL_ERROR </li>
<li>SQL_INVALID_HANDLE </li>
</ul>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Error conditions</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" width="100%" frame="hsides" border="1" rules="rows"><caption>Table 2. SQLParamOptions SQLSTATEs</caption><thead align="left"><tr><th align="left" valign="bottom" width="12.962962962962962%" id="d0e168">SQLSTATE </th>
<th align="left" valign="bottom" width="29.074074074074076%" id="d0e170">Description </th>
<th align="left" valign="bottom" width="57.96296296296296%" id="d0e172">Explanation </th>
</tr>
</thead>
<tbody><tr><td align="left" valign="top" width="12.962962962962962%" headers="d0e168 "><strong>HY</strong>009 </td>
<td align="left" valign="top" width="29.074074074074076%" headers="d0e170 "> Argument value that is not valid</td>
<td align="left" valign="top" width="57.96296296296296%" headers="d0e172 ">The value in the argument <span class="synph"><span class="var">Crow</span></span> is
less than 1.</td>
</tr>
<tr><td align="left" valign="top" width="12.962962962962962%" headers="d0e168 "><strong>HY</strong>010 </td>
<td align="left" valign="top" width="29.074074074074076%" headers="d0e170 "> Function sequence error</td>
<td align="left" valign="top" width="57.96296296296296%" headers="d0e172 ">The function is called while in a data-at-processing
(<samp class="codeph">SQLParamData()</samp>, <samp class="codeph">SQLPutData()</samp>) operation. </td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section"><h4 class="sectiontitle">Restrictions</h4><p> None. </p>
</div>
<div class="section"><h4 class="sectiontitle">References</h4><div class="p"> <ul><li><a href="rzadpfnbndpa.htm#rzadpfnbndpa">SQLBindParam - Bind a buffer to a parameter marker</a></li>
<li><a href="rzadpfnmrset.htm#rzadpfnmrset">SQLMoreResults - Determine whether there are more result sets</a></li>
</ul>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzadphdapi.htm" title="This topic provides a description of each CLI function.">DB2 UDB CLI functions</a></div>
</div>
</div>
</body>
</html>