<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-no-error">
<term>0 (<symbol>ECPG_NO_ERROR</symbol>)</term>
<listitem>
<para>
Indicates no error. (SQLSTATE 00000)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-not-found">
<term>100 (<symbol>ECPG_NOT_FOUND</symbol>)</term>
<listitem>
<para>
This is a harmless condition indicating that the last command
retrieved or processed zero rows, or that you are at the end of
the cursor. (SQLSTATE 02000)
</para>
<para>
When processing a cursor in a loop, you could use this code as
a way to detect when to abort the loop, like this:
<programlisting>
while (1)
{
EXEC SQL FETCH ... ;
if (sqlca.sqlcode == ECPG_NOT_FOUND)
break;
}
</programlisting>
But <literal>WHENEVER NOT FOUND DO BREAK</literal> effectively
does this internally, so there is usually no advantage in
writing this out explicitly.
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-out-of-memory">
<term>-12 (<symbol>ECPG_OUT_OF_MEMORY</symbol>)</term>
<listitem>
<para>
Indicates that your virtual memory is exhausted. The numeric
value is defined as <literal>-ENOMEM</literal>. (SQLSTATE
YE001)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-unsupported">
<term>-200 (<symbol>ECPG_UNSUPPORTED</symbol>)</term>
<listitem>
<para>
Indicates the preprocessor has generated something that the
library does not know about. Perhaps you are running
incompatible versions of the preprocessor and the
library. (SQLSTATE YE002)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-too-many-arguments">
<term>-201 (<symbol>ECPG_TOO_MANY_ARGUMENTS</symbol>)</term>
<listitem>
<para>
This means that the command specified more host variables than
the command expected. (SQLSTATE 07001 or 07002)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-too-few-arguments">
<term>-202 (<symbol>ECPG_TOO_FEW_ARGUMENTS</symbol>)</term>
<listitem>
<para>
This means that the command specified fewer host variables than
the command expected. (SQLSTATE 07001 or 07002)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-too-many-matches">
<term>-203 (<symbol>ECPG_TOO_MANY_MATCHES</symbol>)</term>
<listitem>
<para>
This means a query has returned multiple rows but the statement
was only prepared to store one result row (for example, because
the specified variables are not arrays). (SQLSTATE 21000)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-int-format">
<term>-204 (<symbol>ECPG_INT_FORMAT</symbol>)</term>
<listitem>
<para>
The host variable is of type <type>int</type> and the datum in
the database is of a different type and contains a value that
cannot be interpreted as an <type>int</type>. The library uses
<function>strtol()</function> for this conversion. (SQLSTATE
42804)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-uint-format">
<term>-205 (<symbol>ECPG_UINT_FORMAT</symbol>)</term>
<listitem>
<para>
The host variable is of type <type>unsigned int</type> and the
datum in the database is of a different type and contains a
value that cannot be interpreted as an <type>unsigned
int</type>. The library uses <function>strtoul()</function>
for this conversion. (SQLSTATE 42804)
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sqlstate-sqlcode-ecpg-float-format">