Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > 6627c2a67bf1a3ddfaf05802f76632dc > files > 9

ocaml-mysql-devel-1.1.1-5.mga3.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Mysql" rel="Chapter" href="Mysql.html"><link title="Database connections" rel="Section" href="#1_Databaseconnections">
<link title="Queries" rel="Section" href="#1_Queries">
<link title="Working with MySQL data types" rel="Section" href="#1_WorkingwithMySQLdatatypes">
<link title="Prepared statements" rel="Section" href="#1_Preparedstatements">
<link title="Opening a connection" rel="Subsection" href="#2_Openingaconnection">
<link title="Altering a connection" rel="Subsection" href="#2_Alteringaconnection">
<link title="Information about a connection" rel="Subsection" href="#2_Informationaboutaconnection">
<link title="Errors" rel="Subsection" href="#2_Errors">
<link title="Making a query" rel="Subsection" href="#2_Makingaquery">
<link title="Getting the results of a query" rel="Subsection" href="#2_Gettingtheresultsofaquery">
<link title="Metainformation about a result set" rel="Subsection" href="#2_Metainformationaboutaresultset">
<title>Mysql</title>
</head>
<body>
<div class="navbar">&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;</div>
<h1>Module <a href="type_Mysql.html">Mysql</a></h1>
<pre><span class="keyword">module</span> Mysql: <code class="code">sig</code> <a href="Mysql.html">..</a> <code class="code">end</code></pre><div class="info">
This module provides access to MySQL databases, roughly following the C API<br>
</div>
<hr width="100%">
<br>
<h1 id="1_Databaseconnections">Database connections</h1><br>
<br>
<h2 id="2_Openingaconnection">Opening a connection</h2><br>
<pre><span id="TYPEdbd"><span class="keyword">type</span> <code class="type"></code>dbd</span> </pre>
<div class="info">
database connection handle<br>
</div>

<pre><code><span id="TYPEdb"><span class="keyword">type</span> <code class="type"></code>db</span> = {</code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb.dbhost">dbhost</span>&nbsp;:<code class="type">string option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >database server host</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb.dbname">dbname</span>&nbsp;:<code class="type">string option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >database name</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb.dbport">dbport</span>&nbsp;:<code class="type">int option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >port</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb.dbpwd">dbpwd</span>&nbsp;:<code class="type">string option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >user password</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb.dbuser">dbuser</span>&nbsp;:<code class="type">string option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >database user</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb.dbsocket">dbsocket</span>&nbsp;:<code class="type">string option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >unix socket path</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>
}

<div class="info">
Login information for a database. Use <code class="code">None</code> for default values<br>
</div>

<pre><span id="VALdefaults"><span class="keyword">val</span> defaults</span> : <code class="type"><a href="Mysql.html#TYPEdb">db</a></code></pre><div class="info">
Login information using all defaults<br>
</div>
<pre><code><span id="TYPEprotocol"><span class="keyword">type</span> <code class="type"></code>protocol</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTprotocol.PROTOCOL_DEFAULT"><span class="constructor">PROTOCOL_DEFAULT</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTprotocol.PROTOCOL_TCP"><span class="constructor">PROTOCOL_TCP</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTprotocol.PROTOCOL_SOCKET"><span class="constructor">PROTOCOL_SOCKET</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTprotocol.PROTOCOL_PIPE"><span class="constructor">PROTOCOL_PIPE</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTprotocol.PROTOCOL_MEMORY"><span class="constructor">PROTOCOL_MEMORY</span></span></code></td>

</tr></table>


<pre><code><span id="TYPEdb_option"><span class="keyword">type</span> <code class="type"></code>db_option</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_COMPRESS"><span class="constructor">OPT_COMPRESS</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_NAMED_PIPE"><span class="constructor">OPT_NAMED_PIPE</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_LOCAL_INFILE"><span class="constructor">OPT_LOCAL_INFILE</span></span> <span class="keyword">of</span> <code class="type">bool</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_RECONNECT"><span class="constructor">OPT_RECONNECT</span></span> <span class="keyword">of</span> <code class="type">bool</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_SSL_VERIFY_SERVER_CERT"><span class="constructor">OPT_SSL_VERIFY_SERVER_CERT</span></span> <span class="keyword">of</span> <code class="type">bool</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.REPORT_DATA_TRUNCATION"><span class="constructor">REPORT_DATA_TRUNCATION</span></span> <span class="keyword">of</span> <code class="type">bool</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.SECURE_AUTH"><span class="constructor">SECURE_AUTH</span></span> <span class="keyword">of</span> <code class="type">bool</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_PROTOCOL"><span class="constructor">OPT_PROTOCOL</span></span> <span class="keyword">of</span> <code class="type"><a href="Mysql.html#TYPEprotocol">protocol</a></code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_CONNECT_TIMEOUT"><span class="constructor">OPT_CONNECT_TIMEOUT</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Connect timeout in seconds</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_READ_TIMEOUT"><span class="constructor">OPT_READ_TIMEOUT</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The timeout in seconds for attempts to read from the server.
                              Each attempt uses this timeout value and there are retries if 
                              necessary, so the total effective timeout value is three times
                              the option value.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.OPT_WRITE_TIMEOUT"><span class="constructor">OPT_WRITE_TIMEOUT</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The timeout in seconds for attempts to write to the server.
                               Each attempt uses this timeout value and there are net_retry_count
                               retries if necessary, so the total effective timeout value is 
                               net_retry_count times the option value.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.INIT_COMMAND"><span class="constructor">INIT_COMMAND</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.READ_DEFAULT_FILE"><span class="constructor">READ_DEFAULT_FILE</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Read options from the named option file instead of from my.cnf.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.READ_DEFAULT_GROUP"><span class="constructor">READ_DEFAULT_GROUP</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Read options from the named group</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.SET_CHARSET_DIR"><span class="constructor">SET_CHARSET_DIR</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The path name to the directory that contains character set definition files.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.SET_CHARSET_NAME"><span class="constructor">SET_CHARSET_NAME</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The name of the character set to use as the default character set.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdb_option.SHARED_MEMORY_BASE_NAME"><span class="constructor">SHARED_MEMORY_BASE_NAME</span></span> <span class="keyword">of</span> <code class="type">string</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The name of the shared-memory object for communication to the server 
                                        on Windows, if the server supports shared-memory connections</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>


<pre><span id="VALconnect"><span class="keyword">val</span> connect</span> : <code class="type">?options:<a href="Mysql.html#TYPEdb_option">db_option</a> list -> <a href="Mysql.html#TYPEdb">db</a> -> <a href="Mysql.html#TYPEdbd">dbd</a></code></pre><div class="info">
<code class="code">connect ?options db</code> connects to the database <code class="code">db</code> and returns a handle for
   further use<br>
</div>
<div class="param_info"><code class="code">options</code> : connection specific options, default empty list</div>
<pre><span id="VALquick_connect"><span class="keyword">val</span> quick_connect</span> : <code class="type">?options:<a href="Mysql.html#TYPEdb_option">db_option</a> list -><br>       ?host:string -><br>       ?database:string -><br>       ?port:int -><br>       ?password:string -> ?user:string -> ?socket:string -> unit -> <a href="Mysql.html#TYPEdbd">dbd</a></code></pre><div class="info">
Shortcut for connecting to a database with mostly default field values<br>
</div>
<br>
<h2 id="2_Alteringaconnection">Altering a connection</h2><br>
<pre><span id="VALset_charset"><span class="keyword">val</span> set_charset</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string -> unit</code></pre><div class="info">
<code class="code">set_charset dbd charset</code> sets the current character set for <code class="code">dbd</code> (aka <code class="code">SET NAMES</code>).
    It is strongly recommended to set the charset explicitly after connecting to database, using this function.
    Available character sets are stored in <code class="code">INFORMATION_SCHEMA.CHARACTER_SETS</code> table (<code class="code">SHOW CHARACTER SET</code>).<br>
</div>
<pre><span id="VALchange_user"><span class="keyword">val</span> change_user</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> <a href="Mysql.html#TYPEdb">db</a> -> unit</code></pre><div class="info">
<code class="code">change_user dbd db</code> tries to change the current user and database.
   The host and port fields of db are ignored.<br>
</div>
<pre><span id="VALquick_change"><span class="keyword">val</span> quick_change</span> : <code class="type">?user:string -> ?password:string -> ?database:string -> <a href="Mysql.html#TYPEdbd">dbd</a> -> unit</code></pre><div class="info">
Another shortcut<br>
</div>
<pre><span id="VALselect_db"><span class="keyword">val</span> select_db</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string -> unit</code></pre><div class="info">
<code class="code">select_db</code> Switch to a new db, using the current user and password.<br>
</div>
<pre><span id="VALdisconnect"><span class="keyword">val</span> disconnect</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> unit</code></pre><div class="info">
<code class="code">disconnect dbd</code> releases a database connection <code class="code">dbd</code>. The handle <code class="code">dbd</code> 
   becomes invalid<br>
</div>
<pre><span id="VALping"><span class="keyword">val</span> ping</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> unit</code></pre><div class="info">
<code class="code">ping dbd</code> makes sure the connection to the server is up, and
   re-establishes it if needed.<br>
</div>
<br>
<h2 id="2_Informationaboutaconnection">Information about a connection</h2><br>
<pre><span id="VALlist_dbs"><span class="keyword">val</span> list_dbs</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> ?pat:string -> unit -> string array option</code></pre><div class="info">
<code class="code">list_db</code> Return a list of all visible databases on the current server<br>
</div>
<pre><span id="VALclient_info"><span class="keyword">val</span> client_info</span> : <code class="type">unit -> string</code></pre><div class="info">
Return the MySQL client library version<br>
</div>
<pre><span id="VALhost_info"><span class="keyword">val</span> host_info</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string</code></pre><div class="info">
Return information about the server connection<br>
</div>
<pre><span id="VALserver_info"><span class="keyword">val</span> server_info</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string</code></pre><div class="info">
Return the MySQL server version<br>
</div>
<pre><span id="VALproto_info"><span class="keyword">val</span> proto_info</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> int</code></pre><div class="info">
Return the protocol version being used<br>
</div>
<br>
<h2 id="2_Errors">Errors</h2><br>
<pre><span id="EXCEPTIONError"><span class="keyword">exception</span> Error</span> <span class="keyword">of</span> <code class="type">string</code></pre>
<div class="info">
When most of the API functions fail, they raise this exception with a description of the failure.<br>
</div>
<pre><code><span id="TYPEerror_code"><span class="keyword">type</span> <code class="type"></code>error_code</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Aborting_connection"><span class="constructor">Aborting_connection</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Access_denied_error"><span class="constructor">Access_denied_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Alter_info"><span class="constructor">Alter_info</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Bad_db_error"><span class="constructor">Bad_db_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Bad_field_error"><span class="constructor">Bad_field_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Bad_host_error"><span class="constructor">Bad_host_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Bad_null_error"><span class="constructor">Bad_null_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Bad_table_error"><span class="constructor">Bad_table_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Blob_cant_have_default"><span class="constructor">Blob_cant_have_default</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Blob_key_without_length"><span class="constructor">Blob_key_without_length</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Blob_used_as_key"><span class="constructor">Blob_used_as_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Blobs_and_no_terminated"><span class="constructor">Blobs_and_no_terminated</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_create_db"><span class="constructor">Cant_create_db</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_create_file"><span class="constructor">Cant_create_file</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_create_table"><span class="constructor">Cant_create_table</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_create_thread"><span class="constructor">Cant_create_thread</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_delete_file"><span class="constructor">Cant_delete_file</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_drop_field_or_key"><span class="constructor">Cant_drop_field_or_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_find_dl_entry"><span class="constructor">Cant_find_dl_entry</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_find_system_rec"><span class="constructor">Cant_find_system_rec</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_find_udf"><span class="constructor">Cant_find_udf</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_get_stat"><span class="constructor">Cant_get_stat</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_get_wd"><span class="constructor">Cant_get_wd</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_initialize_udf"><span class="constructor">Cant_initialize_udf</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_lock"><span class="constructor">Cant_lock</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_open_file"><span class="constructor">Cant_open_file</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_open_library"><span class="constructor">Cant_open_library</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_read_charset"><span class="constructor">Cant_read_charset</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_read_dir"><span class="constructor">Cant_read_dir</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_remove_all_fields"><span class="constructor">Cant_remove_all_fields</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_reopen_table"><span class="constructor">Cant_reopen_table</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Cant_set_wd"><span class="constructor">Cant_set_wd</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Checkread"><span class="constructor">Checkread</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Columnaccess_denied_error"><span class="constructor">Columnaccess_denied_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Commands_out_of_sync"><span class="constructor">Commands_out_of_sync</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Con_count_error"><span class="constructor">Con_count_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Conn_host_error"><span class="constructor">Conn_host_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Connection_error"><span class="constructor">Connection_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Db_create_exists"><span class="constructor">Db_create_exists</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Db_drop_delete"><span class="constructor">Db_drop_delete</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Db_drop_exists"><span class="constructor">Db_drop_exists</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Db_drop_rmdir"><span class="constructor">Db_drop_rmdir</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Dbaccess_denied_error"><span class="constructor">Dbaccess_denied_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Delayed_cant_change_lock"><span class="constructor">Delayed_cant_change_lock</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Delayed_insert_table_locked"><span class="constructor">Delayed_insert_table_locked</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Disk_full"><span class="constructor">Disk_full</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Dup_entry"><span class="constructor">Dup_entry</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Dup_fieldname"><span class="constructor">Dup_fieldname</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Dup_key"><span class="constructor">Dup_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Dup_keyname"><span class="constructor">Dup_keyname</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Dup_unique"><span class="constructor">Dup_unique</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Empty_query"><span class="constructor">Empty_query</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Error_on_close"><span class="constructor">Error_on_close</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Error_on_read"><span class="constructor">Error_on_read</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Error_on_rename"><span class="constructor">Error_on_rename</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Error_on_write"><span class="constructor">Error_on_write</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Field_specified_twice"><span class="constructor">Field_specified_twice</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.File_exists_error"><span class="constructor">File_exists_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.File_not_found"><span class="constructor">File_not_found</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.File_used"><span class="constructor">File_used</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Filsort_abort"><span class="constructor">Filsort_abort</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Forcing_close"><span class="constructor">Forcing_close</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Form_not_found"><span class="constructor">Form_not_found</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Function_not_defined"><span class="constructor">Function_not_defined</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Get_errno"><span class="constructor">Get_errno</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Got_signal"><span class="constructor">Got_signal</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Grant_wrong_host_or_user"><span class="constructor">Grant_wrong_host_or_user</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Handshake_error"><span class="constructor">Handshake_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Hashchk"><span class="constructor">Hashchk</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Host_is_blocked"><span class="constructor">Host_is_blocked</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Host_not_privileged"><span class="constructor">Host_not_privileged</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Illegal_grant_for_table"><span class="constructor">Illegal_grant_for_table</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Illegal_ha"><span class="constructor">Illegal_ha</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Insert_info"><span class="constructor">Insert_info</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Insert_table_used"><span class="constructor">Insert_table_used</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Invalid_default"><span class="constructor">Invalid_default</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Invalid_group_func_use"><span class="constructor">Invalid_group_func_use</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Invalid_use_of_null"><span class="constructor">Invalid_use_of_null</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Ipsock_error"><span class="constructor">Ipsock_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Key_column_does_not_exits"><span class="constructor">Key_column_does_not_exits</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Key_not_found"><span class="constructor">Key_not_found</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Kill_denied_error"><span class="constructor">Kill_denied_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Load_info"><span class="constructor">Load_info</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Localhost_connection"><span class="constructor">Localhost_connection</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Mix_of_group_func_and_fields"><span class="constructor">Mix_of_group_func_and_fields</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Multiple_pri_key"><span class="constructor">Multiple_pri_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Namedpipe_connection"><span class="constructor">Namedpipe_connection</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Namedpipeopen_error"><span class="constructor">Namedpipeopen_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Namedpipesetstate_error"><span class="constructor">Namedpipesetstate_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Namedpipewait_error"><span class="constructor">Namedpipewait_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_error_on_write"><span class="constructor">Net_error_on_write</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_fcntl_error"><span class="constructor">Net_fcntl_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_packet_too_large"><span class="constructor">Net_packet_too_large</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_packets_out_of_order"><span class="constructor">Net_packets_out_of_order</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_read_error"><span class="constructor">Net_read_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_read_error_from_pipe"><span class="constructor">Net_read_error_from_pipe</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_read_interrupted"><span class="constructor">Net_read_interrupted</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_uncompress_error"><span class="constructor">Net_uncompress_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Net_write_interrupted"><span class="constructor">Net_write_interrupted</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Nisamchk"><span class="constructor">Nisamchk</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No"><span class="constructor">No</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No_db_error"><span class="constructor">No_db_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No_raid_compiled"><span class="constructor">No_raid_compiled</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No_such_index"><span class="constructor">No_such_index</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No_such_table"><span class="constructor">No_such_table</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No_such_thread"><span class="constructor">No_such_thread</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No_tables_used"><span class="constructor">No_tables_used</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.No_unique_logfile"><span class="constructor">No_unique_logfile</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Non_uniq_error"><span class="constructor">Non_uniq_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Nonexisting_grant"><span class="constructor">Nonexisting_grant</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Nonexisting_table_grant"><span class="constructor">Nonexisting_table_grant</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Nonuniq_table"><span class="constructor">Nonuniq_table</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Normal_shutdown"><span class="constructor">Normal_shutdown</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Not_allowed_command"><span class="constructor">Not_allowed_command</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Not_form_file"><span class="constructor">Not_form_file</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Not_keyfile"><span class="constructor">Not_keyfile</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Null_column_in_index"><span class="constructor">Null_column_in_index</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Old_keyfile"><span class="constructor">Old_keyfile</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Open_as_readonly"><span class="constructor">Open_as_readonly</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Out_of_memory"><span class="constructor">Out_of_memory</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Out_of_resources"><span class="constructor">Out_of_resources</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Out_of_sortmemory"><span class="constructor">Out_of_sortmemory</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Outofmemory"><span class="constructor">Outofmemory</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Parse_error"><span class="constructor">Parse_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Password_anonymous_user"><span class="constructor">Password_anonymous_user</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Password_no_match"><span class="constructor">Password_no_match</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Password_not_allowed"><span class="constructor">Password_not_allowed</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Primary_cant_have_null"><span class="constructor">Primary_cant_have_null</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Ready"><span class="constructor">Ready</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Record_file_full"><span class="constructor">Record_file_full</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Regexp_error"><span class="constructor">Regexp_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Requires_primary_key"><span class="constructor">Requires_primary_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Server_gone_error"><span class="constructor">Server_gone_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Server_handshake_err"><span class="constructor">Server_handshake_err</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Server_lost"><span class="constructor">Server_lost</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Server_shutdown"><span class="constructor">Server_shutdown</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Shutdown_complete"><span class="constructor">Shutdown_complete</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Socket_create_error"><span class="constructor">Socket_create_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Stack_overrun"><span class="constructor">Stack_overrun</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Syntax_error"><span class="constructor">Syntax_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Table_cant_handle_auto_increment"><span class="constructor">Table_cant_handle_auto_increment</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Table_cant_handle_blob"><span class="constructor">Table_cant_handle_blob</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Table_exists_error"><span class="constructor">Table_exists_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Table_must_have_columns"><span class="constructor">Table_must_have_columns</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Table_not_locked"><span class="constructor">Table_not_locked</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Table_not_locked_for_write"><span class="constructor">Table_not_locked_for_write</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Tableaccess_denied_error"><span class="constructor">Tableaccess_denied_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Tcp_connection"><span class="constructor">Tcp_connection</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Textfile_not_readable"><span class="constructor">Textfile_not_readable</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_big_fieldlength"><span class="constructor">Too_big_fieldlength</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_big_rowsize"><span class="constructor">Too_big_rowsize</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_big_select"><span class="constructor">Too_big_select</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_big_set"><span class="constructor">Too_big_set</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_long_ident"><span class="constructor">Too_long_ident</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_long_key"><span class="constructor">Too_long_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_long_string"><span class="constructor">Too_long_string</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_many_delayed_threads"><span class="constructor">Too_many_delayed_threads</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_many_fields"><span class="constructor">Too_many_fields</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_many_key_parts"><span class="constructor">Too_many_key_parts</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_many_keys"><span class="constructor">Too_many_keys</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_many_rows"><span class="constructor">Too_many_rows</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Too_many_tables"><span class="constructor">Too_many_tables</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Udf_exists"><span class="constructor">Udf_exists</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Udf_no_paths"><span class="constructor">Udf_no_paths</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unexpected_eof"><span class="constructor">Unexpected_eof</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unknown_character_set"><span class="constructor">Unknown_character_set</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unknown_com_error"><span class="constructor">Unknown_com_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unknown_error"><span class="constructor">Unknown_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unknown_host"><span class="constructor">Unknown_host</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unknown_procedure"><span class="constructor">Unknown_procedure</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unknown_table"><span class="constructor">Unknown_table</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Unsupported_extension"><span class="constructor">Unsupported_extension</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Update_info"><span class="constructor">Update_info</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Update_without_key_in_safe_mode"><span class="constructor">Update_without_key_in_safe_mode</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Version_error"><span class="constructor">Version_error</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_auto_key"><span class="constructor">Wrong_auto_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_column_name"><span class="constructor">Wrong_column_name</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_db_name"><span class="constructor">Wrong_db_name</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_field_spec"><span class="constructor">Wrong_field_spec</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_field_terminators"><span class="constructor">Wrong_field_terminators</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_field_with_group"><span class="constructor">Wrong_field_with_group</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_group_field"><span class="constructor">Wrong_group_field</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_host_info"><span class="constructor">Wrong_host_info</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_key_column"><span class="constructor">Wrong_key_column</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_mrg_table"><span class="constructor">Wrong_mrg_table</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_outer_join"><span class="constructor">Wrong_outer_join</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_paramcount_to_procedure"><span class="constructor">Wrong_paramcount_to_procedure</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_parameters_to_procedure"><span class="constructor">Wrong_parameters_to_procedure</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_sub_key"><span class="constructor">Wrong_sub_key</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_sum_select"><span class="constructor">Wrong_sum_select</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_table_name"><span class="constructor">Wrong_table_name</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_value_count"><span class="constructor">Wrong_value_count</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Wrong_value_count_on_row"><span class="constructor">Wrong_value_count_on_row</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTerror_code.Yes"><span class="constructor">Yes</span></span></code></td>

</tr></table>

<div class="info">
Possible error codes from a failed operation that doesn't throw an exception<br>
</div>

<pre><code><span id="TYPEstatus"><span class="keyword">type</span> <code class="type"></code>status</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTstatus.StatusOK"><span class="constructor">StatusOK</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The query was successful</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTstatus.StatusEmpty"><span class="constructor">StatusEmpty</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The query was successful, but found no results</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTstatus.StatusError"><span class="constructor">StatusError</span></span> <span class="keyword">of</span> <code class="type"><a href="Mysql.html#TYPEerror_code">error_code</a></code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >There was some problem with the query</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>

<div class="info">
The status of a query<br>
</div>

<pre><span id="VALstatus"><span class="keyword">val</span> status</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> <a href="Mysql.html#TYPEstatus">status</a></code></pre><div class="info">
<code class="code">status dbd</code> returns the status of the last action on <code class="code">dbd</code><br>
</div>
<pre><span id="VALerrno"><span class="keyword">val</span> errno</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> <a href="Mysql.html#TYPEerror_code">error_code</a></code></pre><div class="info">
<code class="code">errno dbd</code> returns the error_code for the last action on <code class="code">dbd</code>. Useful when
   you know there's an error, to avoid an extra layer of matching in <code class="code">status</code><br>
</div>
<pre><span id="VALerrmsg"><span class="keyword">val</span> errmsg</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string option</code></pre><div class="info">
<code class="code">errmsg dbd</code> returns an error message in case the last operation on <code class="code">dbd</code> 
   failed<br>
</div>
<br>
<h1 id="1_Queries">Queries</h1><br>
<br>
<h2 id="2_Makingaquery">Making a query</h2><br>
<pre><span id="TYPEresult"><span class="keyword">type</span> <code class="type"></code>result</span> </pre>
<div class="info">
handle to access the result of a query<br>
</div>

<pre><span id="VALexec"><span class="keyword">val</span> exec</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string -> <a href="Mysql.html#TYPEresult">result</a></code></pre><div class="info">
<code class="code">exec dbd str</code> executes a SQL statement and returns a handle to obtain 
   the result. Check <code class="code">status</code> for errors!<br>
</div>
<br>
<h2 id="2_Gettingtheresultsofaquery">Getting the results of a query</h2><br>
<pre><span id="VALfetch"><span class="keyword">val</span> fetch</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> string option array option</code></pre><div class="info">
<code class="code">fetch result</code> returns the next row from a result as <code class="code">Some a</code> or <code class="code">None</code> 
   in case there is no next result. The array <code class="code">a</code> contains the values from
   the current row, where NULL values are denoted by <code class="code">None</code>. Use 
   <code class="code">column</code> to fetch single values by field name instead of by
   position<br>
</div>
<pre><span id="VALto_row"><span class="keyword">val</span> to_row</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> int64 -> unit</code></pre><div class="info">
<code class="code">to_row result row</code> sets the current row.<br>
<b>Raises</b> <code>Invalid_argument</code> if the row is out of range.<br>
</div>
<pre><span id="VALsize"><span class="keyword">val</span> size</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> int64</code></pre><div class="info">
<code class="code">size result</code> returns the size of the actual result set (number of 
   rows)<br>
</div>
<br>
<code class="code">iter result f</code> applies f to each row of result in turn, starting
from the first. iter_col applies f to the value of the named column
in every row.
<p>

   The iter versions return unit, the map versions return a list of
   the results of all the function applications. If there were no rows
   in the result, returns an empty list.
<p>

   The iter forms are all tail-recursive, so they can be used with any
   size of results. The map forms are tail-recursive, but take up
   space with the list they build.<br>
<pre><span id="VALiter"><span class="keyword">val</span> iter</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> f:(string option array -> unit) -> unit</code></pre><pre><span id="VALiter_col"><span class="keyword">val</span> iter_col</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> key:string -> f:(string option -> unit) -> unit</code></pre><pre><span id="VALiter_cols"><span class="keyword">val</span> iter_cols</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> key:string array -> f:(string option array -> unit) -> unit</code></pre><pre><span id="VALmap"><span class="keyword">val</span> map</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> f:(string option array -> 'a) -> 'a list</code></pre><pre><span id="VALmap_col"><span class="keyword">val</span> map_col</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> key:string -> f:(string option -> 'a) -> 'a list</code></pre><pre><span id="VALmap_cols"><span class="keyword">val</span> map_cols</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> key:string array -> f:(string option array -> 'a) -> 'a list</code></pre><pre><span id="VALcolumn"><span class="keyword">val</span> column</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> key:string -> row:string option array -> string option</code></pre><div class="info">
Returns one field of a result row based on column name.<br>
</div>
<br>
<h2 id="2_Metainformationaboutaresultset">Metainformation about a result set</h2><br>
<pre><code><span id="TYPEdbty"><span class="keyword">type</span> <code class="type"></code>dbty</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.IntTy"><span class="constructor">IntTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.FloatTy"><span class="constructor">FloatTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.StringTy"><span class="constructor">StringTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.SetTy"><span class="constructor">SetTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.EnumTy"><span class="constructor">EnumTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.DateTimeTy"><span class="constructor">DateTimeTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.DateTy"><span class="constructor">DateTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.TimeTy"><span class="constructor">TimeTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.YearTy"><span class="constructor">YearTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.TimeStampTy"><span class="constructor">TimeStampTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.UnknownTy"><span class="constructor">UnknownTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.Int64Ty"><span class="constructor">Int64Ty</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.BlobTy"><span class="constructor">BlobTy</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTdbty.DecimalTy"><span class="constructor">DecimalTy</span></span></code></td>

</tr></table>

<div class="info">
The type of a database field. Each of these represents one or more MySQL data types.<br>
</div>

<pre><code><span id="TYPEfield"><span class="keyword">type</span> <code class="type"></code>field</span> = {</code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTfield.name">name</span>&nbsp;:<code class="type">string</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Name of the field</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTfield.table">table</span>&nbsp;:<code class="type">string option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Table name, or None if a constructed field</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTfield.def">def</span>&nbsp;:<code class="type">string option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Default value of the field</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTfield.ty">ty</span>&nbsp;:<code class="type"><a href="Mysql.html#TYPEdbty">dbty</a></code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The type of data stored in the field</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTfield.max_length">max_length</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Maximum width of field for the result set</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTfield.flags">flags</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Flags set</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTfield.decimals">decimals</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Number of decimals for numeric fields</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>
}

<div class="info">
The type that describes a field of a table or result<br>
</div>

<pre><span id="VALpretty_type"><span class="keyword">val</span> pretty_type</span> : <code class="type"><a href="Mysql.html#TYPEdbty">dbty</a> -> string</code></pre><div class="info">
Turn a field-type type into a string for printing<br>
</div>
<pre><span id="VALaffected"><span class="keyword">val</span> affected</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> int64</code></pre><div class="info">
<code class="code">affected result</code> returns the number of rows changed by the last
  UPDATE, or deleted by the last DELETE, or added by the last INSERT,
  or the number of rows returned by the last SELECT<br>
</div>
<pre><span id="VALinsert_id"><span class="keyword">val</span> insert_id</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> int64</code></pre><div class="info">
<code class="code">insert_id result</code> returns the ID generated by the last INSERT
query in a table with an AUTO_INCREMENT column. See the MySQL
documentation for caveats.<br>
</div>
<pre><span id="VALfields"><span class="keyword">val</span> fields</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> int</code></pre><div class="info">
<code class="code">fields result</code> returns the number of fields in a row<br>
</div>
<pre><span id="VALnames"><span class="keyword">val</span> names</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> string array</code></pre><div class="info">
<code class="code">names result</code> returns an array of the field names for the current result<br>
</div>
<pre><span id="VALtypes"><span class="keyword">val</span> types</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> <a href="Mysql.html#TYPEdbty">dbty</a> array</code></pre><div class="info">
<code class="code">types result</code> returns an array with the MySQL types of the current 
  result<br>
</div>
<pre><span id="VALfetch_field"><span class="keyword">val</span> fetch_field</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> <a href="Mysql.html#TYPEfield">field</a> option</code></pre><div class="info">
Returns the information on the next field<br>
</div>
<pre><span id="VALfetch_fields"><span class="keyword">val</span> fetch_fields</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> <a href="Mysql.html#TYPEfield">field</a> array option</code></pre><div class="info">
Returns information on all the fields<br>
</div>
<pre><span id="VALfetch_field_dir"><span class="keyword">val</span> fetch_field_dir</span> : <code class="type"><a href="Mysql.html#TYPEresult">result</a> -> int -> <a href="Mysql.html#TYPEfield">field</a> option</code></pre><div class="info">
Returns information on a specific field, with the first field numbered 0<br>
</div>
<br>
<h1 id="1_WorkingwithMySQLdatatypes">Working with MySQL data types</h1><br>
<pre><span id="VALescape"><span class="keyword">val</span> escape</span> : <code class="type">string -> string</code></pre><div class="info">
<code class="code">escape str</code> returns the same string as <code class="code">str</code> in MySQL syntax with
  special characters quoted to not confuse the MySQL parser<br>
</div>
<pre><span id="VALreal_escape"><span class="keyword">val</span> real_escape</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string -> string</code></pre><div class="info">
<code class="code">real_escape dbd str</code> returns <code class="code">str</code> encoded
  to an escaped SQL string according to the current character set of <code class="code">dbd</code><br>
</div>
<br>
<code class="code">xxx2ml str</code> decodes a MySQL value of type xxx into a corresponding
  OCaml value<br>
<pre><span id="VALint2ml"><span class="keyword">val</span> int2ml</span> : <code class="type">string -> int</code></pre><div class="info">
Use for all MySQL signed integer types but BIGINT<br>
</div>
<pre><span id="VALdecimal2ml"><span class="keyword">val</span> decimal2ml</span> : <code class="type">string -> string</code></pre><pre><span id="VALint322ml"><span class="keyword">val</span> int322ml</span> : <code class="type">string -> int32</code></pre><pre><span id="VALnativeint2ml"><span class="keyword">val</span> nativeint2ml</span> : <code class="type">string -> nativeint</code></pre><pre><span id="VALint642ml"><span class="keyword">val</span> int642ml</span> : <code class="type">string -> int64</code></pre><pre><span id="VALfloat2ml"><span class="keyword">val</span> float2ml</span> : <code class="type">string -> float</code></pre><div class="info">
Use for MySQL FLOAT, DOUBLE and REAL types<br>
</div>
<pre><span id="VALstr2ml"><span class="keyword">val</span> str2ml</span> : <code class="type">string -> string</code></pre><div class="info">
Use for MySQL CHAR and VARCHAR types<br>
</div>
<pre><span id="VALenum2ml"><span class="keyword">val</span> enum2ml</span> : <code class="type">string -> string</code></pre><pre><span id="VALblob2ml"><span class="keyword">val</span> blob2ml</span> : <code class="type">string -> string</code></pre><div class="info">
Use for all MySQL BLOB and TEXT types<br>
</div>
<pre><span id="VALset2ml"><span class="keyword">val</span> set2ml</span> : <code class="type">string -> string list</code></pre><pre><span id="VALdatetime2ml"><span class="keyword">val</span> datetime2ml</span> : <code class="type">string -> int * int * int * int * int * int</code></pre><pre><span id="VALdate2ml"><span class="keyword">val</span> date2ml</span> : <code class="type">string -> int * int * int</code></pre><pre><span id="VALtime2ml"><span class="keyword">val</span> time2ml</span> : <code class="type">string -> int * int * int</code></pre><pre><span id="VALyear2ml"><span class="keyword">val</span> year2ml</span> : <code class="type">string -> int</code></pre><pre><span id="VALtimestamp2ml"><span class="keyword">val</span> timestamp2ml</span> : <code class="type">string -> int * int * int * int * int * int</code></pre><br>
Not yet supported: DECIMAL and NUMERIC<br>
<pre><span id="VALopt"><span class="keyword">val</span> opt</span> : <code class="type">('a -> 'b) -> 'a option -> 'b option</code></pre><div class="info">
<code class="code">opt f v</code> applies <code class="code">f</code> to optional value <code class="code">v</code>. Use this to fetch
  data of known type from database fields which might be NULL:
  <code class="code">opt int2ml str</code><br>
</div>
<pre><span id="VALnot_null"><span class="keyword">val</span> not_null</span> : <code class="type">('a -> 'b) -> 'a option -> 'b</code></pre><div class="info">
<code class="code">not_null f v</code> applies <code class="code">f</code> to <code class="code">Some v</code>. Use this to fetch data of known 
  type from database fields which never can be NULL: <code class="code">not_null int2ml str</code><br>
</div>
<br>
<code class="code">ml2xxx v</code> encodes <code class="code">v</code> into MySQL syntax.
  <code class="code">ml2rxxx v</code> encodes <code class="code">v</code> into MySQL syntax using <code class="code">real_escape</code>.<br>
<pre><span id="VALml2str"><span class="keyword">val</span> ml2str</span> : <code class="type">string -> string</code></pre><pre><span id="VALml2rstr"><span class="keyword">val</span> ml2rstr</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string -> string</code></pre><pre><span id="VALml2blob"><span class="keyword">val</span> ml2blob</span> : <code class="type">string -> string</code></pre><pre><span id="VALml2rblob"><span class="keyword">val</span> ml2rblob</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string -> string</code></pre><pre><span id="VALml2int"><span class="keyword">val</span> ml2int</span> : <code class="type">int -> string</code></pre><pre><span id="VALml2decimal"><span class="keyword">val</span> ml2decimal</span> : <code class="type">string -> string</code></pre><pre><span id="VALml322int"><span class="keyword">val</span> ml322int</span> : <code class="type">int32 -> string</code></pre><pre><span id="VALml642int"><span class="keyword">val</span> ml642int</span> : <code class="type">int64 -> string</code></pre><pre><span id="VALml2float"><span class="keyword">val</span> ml2float</span> : <code class="type">float -> string</code></pre><pre><span id="VALml2enum"><span class="keyword">val</span> ml2enum</span> : <code class="type">string -> string</code></pre><pre><span id="VALml2renum"><span class="keyword">val</span> ml2renum</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string -> string</code></pre><pre><span id="VALml2set"><span class="keyword">val</span> ml2set</span> : <code class="type">string list -> string</code></pre><pre><span id="VALml2rset"><span class="keyword">val</span> ml2rset</span> : <code class="type"><a href="Mysql.html#TYPEdbd">dbd</a> -> string list -> string</code></pre><pre><span id="VALml2datetime"><span class="keyword">val</span> ml2datetime</span> : <code class="type">int * int * int * int * int * int -> string</code></pre><pre><span id="VALml2datetimel"><span class="keyword">val</span> ml2datetimel</span> : <code class="type">year:int -> month:int -> day:int -> hour:int -> min:int -> sec:int -> string</code></pre><pre><span id="VALml2date"><span class="keyword">val</span> ml2date</span> : <code class="type">int * int * int -> string</code></pre><pre><span id="VALml2datel"><span class="keyword">val</span> ml2datel</span> : <code class="type">year:int -> month:int -> day:int -> string</code></pre><pre><span id="VALml2time"><span class="keyword">val</span> ml2time</span> : <code class="type">int * int * int -> string</code></pre><pre><span id="VALml2timel"><span class="keyword">val</span> ml2timel</span> : <code class="type">hour:int -> min:int -> sec:int -> string</code></pre><pre><span id="VALml2year"><span class="keyword">val</span> ml2year</span> : <code class="type">int -> string</code></pre><pre><span id="VALml2timestamp"><span class="keyword">val</span> ml2timestamp</span> : <code class="type">int * int * int * int * int * int -> string</code></pre><pre><span id="VALml2timestampl"><span class="keyword">val</span> ml2timestampl</span> : <code class="type">year:int -> month:int -> day:int -> hour:int -> min:int -> sec:int -> string</code></pre><pre><span id="VALvalues"><span class="keyword">val</span> values</span> : <code class="type">string list -> string</code></pre><div class="info">
<code class="code">values vs</code> takes a list of strings and returns a string
  "(a,b,c ..)" where values are separated by comma and the whole
  list is enclosed into parentheses. This is useful to construct
  SQL `insert ... values ( .. )' statements<br>
</div>
<br>
<h1 id="1_Preparedstatements">Prepared statements</h1><br>
<pre><span class="keyword">module</span> <a href="Mysql.Prepared.html">Prepared</a>: <code class="code">sig</code> <a href="Mysql.Prepared.html">..</a> <code class="code">end</code></pre><div class="info">
Prepared statements with parameters.
</div>
</body></html>