eschmid Tue Aug 21 19:48:02 2001 EDT
Modified files:
/phpdoc/en/functions dbplus.xml
Log:
Now with the correct indentation.
Index: phpdoc/en/functions/dbplus.xml
diff -u /dev/null phpdoc/en/functions/dbplus.xml:1.8
--- /dev/null Tue Aug 21 19:48:02 2001
+++ phpdoc/en/functions/dbplus.xml Tue Aug 21 19:48:02 2001
@@ -0,0 +1,1402 @@
+<?xml encoding="iso-8859-1"?>
+<!-- $Revision: 1.8 $ -->
+ <reference id="ref.dbplus">
+ <title>DB++ functions</title>
+ <titleabbrev></titleabbrev>
+
+ <partintro>
+ &warn.experimental;
+
+ <section id="dbplus.intro">
+ <title>Experimental support for db++ database</title>
+ <para>
+ This paper describes the the db++ extension which enables PHP to
+ access db++ relation files through all of the search and update
+ methods available in the client/server "C" library interface of
+ db++ and to read and process the output of a db++ query.
+ </para>
+ </section>
+
+ <section id="dbplus.requirenments">
+ <title>Requirenments</title>
+ <para>
+ ??? Download where
+ </para>
+ </section>
+
+ <section id="dbplus.installation">
+ <title>Installation</title>
+ <para>
+ Creation and installation of this extension requires the db++
+ client libraries and header files to be installed on your system
+ as described above. You have to run <command>configure</command>
+ with option <option>--with-dbplus</option> to build this
+ extension.
+ </para>
+ <para>
+ <command>configure</command> looks for the client libraries and
+ header files under the default
+ path<filename>/usr/dbplus/</filename>. If you have installed
+ db++ in a different place you have add the installation path to
+ the <command>configure</command> option like this:
+ <option>--with-dbplus=/your/installation/path</option>.
+ </para>
+ </section>
+ <section id="dbplus.errorcodes">
+ <title>db++ error codes</title>
+ <para>
+ <table>
+ <title>db++ error codes</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>PHP Constant</entry>
+ <entry>db++ constant</entry>
+ <entry>meaning</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>DBPLUS_ERR_NOERR</entry>
+ <entry>ERR_NOERR</entry>
+ <entry>Null error condition</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_DUPLICATE</entry>
+ <entry>ERR_DUPLICATE</entry>
+ <entry>Tried to insert a duplicate tuple</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_EOSCAN</entry>
+ <entry>ERR_EOSCAN</entry>
+ <entry>End of scan from rget()</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_EMPTY</entry>
+ <entry>ERR_EMPTY</entry>
+ <entry>Relation is empty (server)</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_CLOSE</entry>
+ <entry>ERR_CLOSE</entry>
+ <entry>The server can't close</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_WLOCKED</entry>
+ <entry>ERR_WLOCKED</entry>
+ <entry>The record is write locked</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_LOCKED</entry>
+ <entry>ERR_LOCKED</entry>
+ <entry>Relation was already locked</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_NOLOCK</entry>
+ <entry>ERR_NOLOCK</entry>
+ <entry>Relation cannot be locked</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_READ</entry>
+ <entry>ERR_READ</entry>
+ <entry>Read error on relation</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_WRITE</entry>
+ <entry>ERR_WRITE</entry>
+ <entry>Write error on relation</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_CREATE</entry>
+ <entry>ERR_CREATE</entry>
+ <entry>Creat() system call failed</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_LSEEK</entry>
+ <entry>ERR_LSEEK</entry>
+ <entry>Lseek() system call failed</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_LENGTH</entry>
+ <entry>ERR_LENGTH</entry>
+ <entry>Tuple exceeds maximum length</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_OPEN</entry>
+ <entry>ERR_OPEN</entry>
+ <entry>Open() system call failed</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_WOPEN</entry>
+ <entry>ERR_WOPEN</entry>
+ <entry>Relation already opened for writing</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_MAGIC</entry>
+ <entry>ERR_MAGIC</entry>
+ <entry>File is not a relation</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_VERSION</entry>
+ <entry>ERR_VERSION</entry>
+ <entry>File is a very old relation</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_PGSIZE</entry>
+ <entry>ERR_PGSIZE</entry>
+ <entry>Relation uses a different page size</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_CRC</entry>
+ <entry>ERR_CRC</entry>
+ <entry>Invalid crc in the superpage</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_PIPE</entry>
+ <entry>ERR_PIPE</entry>
+ <entry>Piped relation requires lseek()</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_NIDX</entry>
+ <entry>ERR_NIDX</entry>
+ <entry>Too many secondary indices</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_MALLOC</entry>
+ <entry>ERR_MALLOC</entry>
+ <entry>Malloc() call failed</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_NUSERS</entry>
+ <entry>ERR_NUSERS</entry>
+ <entry>Error use of max users</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_PREEXIT</entry>
+ <entry>ERR_PREEXIT</entry>
+ <entry>Caused by invalid usage</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_ONTRAP</entry>
+ <entry>ERR_ONTRAP</entry>
+ <entry>Caused by a signal</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_PREPROC</entry>
+ <entry>ERR_PREPROC</entry>
+ <entry>Error in the preprocessor</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_DBPARSE</entry>
+ <entry>ERR_DBPARSE</entry>
+ <entry>Error in the parser</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_DBRUNERR</entry>
+ <entry>ERR_DBRUNERR</entry>
+ <entry>Run error in db</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_DBPREEXIT</entry>
+ <entry>ERR_DBPREEXIT</entry>
+ <entry>Exit condition caused by prexit() * procedure</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_WAIT</entry>
+ <entry>ERR_WAIT</entry>
+ <entry>Wait a little (Simple only)</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_CORRUPT_TUPLE</entry>
+ <entry>ERR_CORRUPT_TUPLE</entry>
+ <entry>A client sent a corrupt tuple</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_WARNING0</entry>
+ <entry>ERR_WARNING0</entry> <entry>The Simple routines
+ encountered a non fatal error which was corrected</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_PANIC</entqry> <entry>ERR_PANIC</entry>
+ <entry>The server should not really die but after a disaster
+ send ERR_PANIC to all its clients</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_FIFO</entry>
+ <entry>ERR_FIFO</entry>
+ <entry>Can't create a fifo</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_PERM</entry>
+ <entry>ERR_PERM</entry>
+ <entry>Permission denied</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_TCL</entry>
+ <entry>ERR_TCL</entry>
+ <entry>TCL_error</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_RESTRICTED</entry>
+ <entry>ERR_RESTRICTED</entry>
+ <entry>Only two users</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_USER</entry> <entry>ERR_USER</entry>
+ <entry>An error in the use of the library by an application
+ programmer</entry>
+ </row>
+ <row>
+ <entry>DBPLUS_ERR_UNKNOWN</entry>
+ <entry>ERR_UNKNOWN</entry>
+ <entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ </partintro>
+
+ <refentry id="function.dbplus-add">
+ <refnamediv>
+ <refname>dbplus_add</refname>
+ <refpurpose>Add a tuple to a relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_add</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>tuple</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ This function will add a tuple to a relation. The
+ <parameter>tuple</parameter> data is an array of attribute/value
+ pairs to be inserted into the given
+ <parameter>relation</parameter>. After successfull execution the
+ <parameter>tuple</parameter> array will contain the complete data
+ of the newly created tuple, including all implicitly set domain
+ fields like sequences.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-aql">
+ <refnamediv>
+ <refname>dbplus_aql</refname>
+ <refpurpose>Perform AQL query</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_aql</function></funcdef>
+ <paramdef>string <parameter>query</parameter></paramdef>
+ <paramdef>string
+ <parameter><optional>server</optional></parameter>
+ </paramdef>
+ <paramdef>string
+ <parameter><optional>dbpath</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-chdir">
+ <refnamediv>
+ <refname>dbplus_chdir</refname>
+ <refpurpose>Get/Set database virtual current directory</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>dbplus_chdir</function></funcdef>
+ <paramdef>string
+ <parameter><optional>newdir</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_chdir</function> will change the virtual current
+ directory where relation files will be looked for by
+ <function>dbplus_open</function>.
+ <function>dbplus_chdir</function> will return the absolute path
+ of the current directory. Calling
+ <function>dbplus_chdir</function> without giving any
+ <parameter>newdir</parameter> may be used to query the current
+ working directory.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-close">
+ <refnamediv>
+ <refname>dbplus_close</refname>
+ <refpurpose>Close a relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_close</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Calling <function>dbplus_close</function> will close a relation
+ previously opened by <function>dbplus_open</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-curr">
+ <refnamediv>
+ <refname>dbplus_curr</refname>
+ <refpurpose>Get current tuple from relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_curr</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>tuple</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_curr</function> will read the data for the
+ current tuple for the given <parameter>relation</parameter> and
+ will pass it back as an associative array in
+ <parameter>tuple</parameter>.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ <para>
+ See also <function>dbplus_first</function>,
+ <function>dbplus_prev</function>,
+ <function>dbplus_next</function>, and
+ <function>dbplus_last</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-errcode">
+ <refnamediv>
+ <refname>dbplus_errcode</refname>
+ <refpurpose>
+ Get error string for given errorcode or last error
+ </refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>string <function>dbplus_errcode</function></funcdef>
+ <paramdef>int <parameter>err</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-errno">
+ <refnamediv>
+ <refname>dbplus_errno</refname>
+ <refpurpose>Get error code for last operation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_errno</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-first">
+ <refnamediv>
+ <refname>dbplus_first</refname>
+ <refpurpose>Get first tuple from relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_first</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>tuple</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_curr</function> will read the data for the first
+ tuple for the given <parameter>relation</parameter>, make it the
+ current tuple and pass it back as an associative array in
+ <parameter>tuple</parameter>.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ <para>
+ See also <function>dbplus_current</function>,
+ <function>dbplus_prev</function>,
+ <function>dbplus_next</function>, and
+ <function>dbplus_last</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-flush">
+ <refnamediv>
+ <refname>dbplus_flush</refname>
+ <refpurpose>Flush all changes made on a relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_flush</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_flush</function> will write all changes applied
+ to <parameter>relation</parameter> since the last flush to disk.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-freealllocks">
+ <refnamediv>
+ <refname>dbplus_freealllocks</refname>
+ <refpurpose>Free all locks held by this client</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_freealllocks</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_freeaalllocks</function> will free all locks
+ held by this client.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-freerlocks">
+ <refnamediv>
+ <refname>dbplus_freerlocks</refname>
+ <refpurpose>Free all locks on given relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_freerlocks</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_freerlocks</function> will free all locks held
+ on the given <parameter>relation</parameter>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-info">
+ <refnamediv>
+ <refname>dbplus_info</refname>
+ <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_info</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>string <parameter>key</parameter></paramdef>
+ <paramdef>array <parameter></parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-last">
+ <refnamediv>
+ <refname>dbplus_last</refname>
+ <refpurpose>Get last tuple from relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_last</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>tuple</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_curr</function> will read the data for the last
+ tuple for the given <parameter>relation</parameter>, make it the
+ current tuple and pass it back as an associative array in
+ <parameter>tuple</parameter>.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ <para>
+ See also <function>dbplus_first</function>,
+ <function>dbplus_current</function>,
+ <function>dbplus_prev</function>, and
+ <function>dbplus_next</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-lockrel">
+ <refnamediv>
+ <refname>dbplus_lockrel</refname>
+ <refpurpose>Request read-lock on relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_lockrel</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-next">
+ <refnamediv>
+ <refname>dbplus_next</refname>
+ <refpurpose>Get next tuple from relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_next</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter></parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_curr</function> will read the data for the next
+ tuple for the given <parameter>relation</parameter>, will make it
+ the current tuple and will pass it back as an associative array
+ in <parameter>tuple</parameter>.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ <para>
+ See also <function>dbplus_first</function>,
+ <function>dbplus_current</function>,
+ <function>dbplus_prev</function>, and
+ <function>dbplus_last</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-open">
+ <refnamediv>
+ <refname>dbplus_open</refname>
+ <refpurpose>Open relation file</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_open</function></funcdef>
+ <paramdef>string <parameter>name</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ The relation file <parameter>name</parameter> will be opened.
+ <parameter>name</parameter> can be either a file name or a
+ relative or absolute path name. This will be mapped in any case
+ to an absolute relation file path on a specific host machine and
+ server.
+ </para>
+ <para>
+ On success a relation file handle (cursor) is returned which must
+ be used in any subsequent commanads referencing the relation.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-prev">
+ <refnamediv>
+ <refname>dbplus_prev</refname>
+ <refpurpose>Get previous tuple from relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_prev</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>tuple</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_curr</function> will read the data for the next
+ tuple for the given <parameter>relation</parameter>, will make it
+ the current tuple and will pass it back as an associative array
+ in <parameter>tuple</parameter>.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ <para>
+ See also <function>dbplus_first</function>,
+ <function>dbplus_current</function>,
+ <function>dbplus_next</function>, and
+ <function>dbplus_last</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-restorepos">
+ <refnamediv>
+ <refname>dbplus_restorepos</refname> <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_restorepos</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>tuple</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-ropen">
+ <refnamediv>
+ <refname>dbplus_ropen</refname>
+ <refpurpose>Open relation file ... ???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_ropen</function></funcdef>
+ <paramdef>string <parameter>name</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-runlink">
+ <refnamediv>
+ <refname>dbplus_runlink</refname>
+ <refpurpose>Remove relation from filesystem</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_runlink</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rzap">
+ <refnamediv>
+ <refname>dbplus_rzap</refname>
+ <refpurpose>Remove all tuples from relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rzap</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>int <parameter>truncate</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-savepos">
+ <refnamediv>
+ <refname>dbplus_savepos</refname>
+ <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_savepos</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-setindex">
+ <refnamediv>
+ <refname>dbplus_setindex</refname>
+ <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_setindex</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>string <parameter>idx_name</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-setindexbynumber">
+ <refnamediv>
+ <refname>dbplus_setindexbynumber</refname>
+ <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_setindexbynumber</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>int <parameter>idx_number</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-sql">
+ <refnamediv>
+ <refname>dbplus_sql</refname>
+ <refpurpose>Perform SQL query</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_sql</function></funcdef>
+ <paramdef>string <parameter>query</parameter></paramdef>
+ <paramdef>string <parameter>server</parameter></paramdef>
+ <paramdef>string <parameter>dbpath</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-tremove">
+ <refnamediv>
+ <refname>dbplus_tremove</refname>
+ <refpurpose>Remove tuple and return new current tuple</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_tremove</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>old</parameter></paramdef>
+ <paramdef>array
+ <parameter><optional>current</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-undo">
+ <refnamediv>
+ <refname>dbplus_undo</refname>
+ <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_undo</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-undoprepare">
+ <refnamediv>
+ <refname>dbplus_undoprepare</refname>
+ <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_undoprepare</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-unlockrel">
+ <refnamediv>
+ <refname>dbplus_unlockrel</refname>
+ <refpurpose>Give up read-lock on relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_unlockrel</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-unselect">
+ <refnamediv>
+ <refname>dbplus_unselect</refname>
+ <refpurpose>???</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_unselect</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-update">
+ <refnamediv>
+ <refname>dbplus_update</refname>
+ <refpurpose>Update specified tuple in relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_update</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ <paramdef>array <parameter>old</parameter></paramdef>
+ <paramdef>array <parameter>new</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-xlockrel">
+ <refnamediv>
+ <refname>dbplus_xlockrel</refname>
+ <refpurpose>Request exclusive write lock on relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_xlockrel</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-xunlockrel">
+ <refnamediv>
+ <refname>dbplus_xunlockrel</refname>
+ <refpurpose>Free exclusive write lock on relation</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_xunlockrel</function></funcdef>
+ <paramdef>int <parameter>relation</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+
+<!-- unimplemented functions -->
+
+
+ <refentry id="function.dbplus-change">
+ <refnamediv>
+ <refname>dbplus_change</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_change</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>string <parameter>domain</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-find">
+ <refnamediv>
+ <refname>dbplus_find</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_find</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>string <parameter>constr</parameter></paramdef>
+ <paramdef>string <parameter>tname</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-freelock">
+ <refnamediv>
+ <refname>dbplus_freelock</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_freelock</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>string <parameter>tname</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_freelock</function> will release a write lock on
+ the given <parameter>tuple</parameter> previously obtained by
+ <function>dbplus_getlock</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-getlock">
+ <refnamediv>
+ <refname>dbplus_getlock</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_getlock</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>string <parameter>tname</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_getlock</function> will request a write lock on
+ the speified <parameter>tuple</parameter>. It will return zero on
+ success or a non-zero error code, especially DBPLUS_ERR_WLOCKED,
+ on failure.
+ </para>
+ <para>
+ See also <function>dbplus_freelock</function>,
+ <function>dbplus_freerlocks</function>, and
+ <function>dbplus_freealllocks</function>.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-getunique">
+ <refnamediv>
+ <refname>dbplus_getunique</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_getunique</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>uniqueid</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ <function>dbplus_getunique</function> will obtain a number
+ guaranteed to be unique for the given
+ <parameter>relation</parameter> and will pass it back in the
+ variable given as <parameter>uniqueid</parameter>.
+ </para>
+ <para>
+ The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+ or a db++ error code on failure. See
+ <function>dbplus_errcode</function> or the introduction to this
+ chapter for more information on db++ error codes.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rchperm">
+ <refnamediv>
+ <refname>dbplus_rchperm</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rchperm</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>mask</parameter></paramdef>
+ <paramdef>string <parameter>user</parameter></paramdef>
+ <paramdef>string <parameter>group</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rcreate">
+ <refnamediv>
+ <refname>dbplus_rcreate</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rcreate</function></funcdef>
+ <paramdef>string <parameter>name</parameter></paramdef>
+ <paramdef>string <parameter>domlist</parameter></paramdef>
+ <paramdef>int <parameter>flag</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rcrtexact">
+ <refnamediv>
+ <refname>dbplus_rcrtexact</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rcrtexact</function></funcdef>
+ <paramdef>string <parameter>name</parameter></paramdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>flag</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rcrtlike">
+ <refnamediv>
+ <refname>dbplus_rcrtlike</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rcrtlike</function></funcdef>
+ <paramdef>string <parameter>name</parameter></paramdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>int <parameter>flag</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-resolve">
+ <refnamediv>
+ <refname>dbplus_resolve</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_resolve</function></funcdef>
+ <paramdef>string <parameter>name</parameter></paramdef>
+ <paramdef>string <parameter>vname</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rkeys">
+ <refnamediv>
+ <refname>dbplus_rkeys</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rkeys</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>string <parameter>domlist</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rquery">
+ <refnamediv>
+ <refname>dbplus_rquery</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rquery</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rrename">
+ <refnamediv>
+ <refname>dbplus_rrename</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rrename</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>string <parameter>name</parameter></paramdef>
+ <paramdef>int <parameter>flag</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-rsecindex">
+ <refnamediv>
+ <refname>dbplus_rsecindex</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_rsecindex</function></funcdef>
+ <paramdef>int <parameter>handle</parameter></paramdef>
+ <paramdef>string <parameter>domlist</parameter></paramdef>
+ <paramdef>int <parameter>compact</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ <refentry id="function.dbplus-tcl">
+ <refnamediv>
+ <refname>dbplus_tcl</refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>dbplus_tcl</function></funcdef>
+ <paramdef>int <parameter>sid</parameter></paramdef>
+ <paramdef>string <parameter>script</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ &warn.experimental.func;
+ <para>
+ Not implemented yet.
+ </para>
+ </refsect1>
+ </refentry>
+
+ </reference>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim: ts=1 sw=1 et syntax=sgml
+-->