--- a/docs/trunk/publican/oosqlite/en-US/oosqliteConnection.xml
+++ b/docs/trunk/publican/oosqlite/en-US/oosqliteConnection.xml
@@ -97,28 +97,28 @@
 <entry align="center"><emphasis role="bold"></emphasis></entry>
 </row>
 <row>
-<entry><link linkend="atrBackupDestination"></link>backupDestination</entry>
+<entry><link linkend="atrBackupDestination">backupDestination</link></entry>
 <entry>Reflects whether this database connection is currently in use as the destination for an online <link linkend="clsOOSQLiteBackup">backup</link>.</entry>
 </row>
 <row>
 <entry><link linkend="atrClosedClsConn">closed</link></entry>
-<entry>.</entry>
+<entry>Reflects the open or closed state of this database connection.</entry>
 </row>
 <row>
 <entry><link linkend="atrFileName">fileName</link></entry>
-<entry>.</entry>
+<entry>Reflects the database file name used to instantiate this connection.</entry>
 </row>
 <row>
 <entry><link linkend="atrInitCodeClsConn">initCode</link></entry>
-<entry>.</entry>
+<entry>Reflects the status of the initialization of the database connection.</entry>
 </row>
 <row>
 <entry><link linkend="atrLastErrCodeClsConn">lastErrCode</link></entry>
-<entry>.</entry>
+<entry>Reflects the last error code set by for the <computeroutput>ooSQLiteConnection</computeroutput> object.</entry>
 </row>
 <row>
 <entry><link linkend="atrLastErrMsgClsConn">lastErrMsg</link></entry>
-<entry>.</entry>
+<entry>Reflects a human readable explanation, a message, of the last error code recorded by the connection object.</entry>
 </row>
 <row>
 <entry><link linkend="atrRecordFormatClsConn">recordFormat</link></entry>
@@ -130,27 +130,27 @@
 </row>
 <row>
 <entry><link linkend="mthBusyHandler">busyHandler</link></entry>
-<entry>.</entry>
+<entry>Installs a user defined busy handler.</entry>
 </row>
 <row>
 <entry><link linkend="mthBusyTimeOut">busyTimeOut</link></entry>
-<entry>.</entry>
+<entry>Sets a busy handler that sleeps for the specified amount of time when a table is locked.</entry>
 </row>
 <row>
 <entry><link linkend="mthChanges">changes</link></entry>
-<entry>.</entry>
+<entry>Returns the number of database rows that were changed or inserted or deleted by the most recently completed SQL statement on this database connection.</entry>
 </row>
 <row>
 <entry><link linkend="mthClose">close</link></entry>
-<entry>.</entry>
+<entry>Releases all systems resources that have been allocated for the database connection.</entry>
 </row>
 <row>
 <entry><link linkend="mthCommitHook">commitHook</link></entry>
-<entry>.</entry>
+<entry>Registers a callback method to be invoked whenever a transaction is committed.</entry>
 </row>
 <row>
 <entry><link linkend="mthDbFileName">dbFileName</link></entry>
-<entry>.</entry>
+<entry>Returns the database file name of the database specified by the <emphasis role="italic">name</emphasis> argument.</entry>
 </row>
 <row>
 <entry><link linkend="mthDbMutex">dbMutex</link></entry>
@@ -210,11 +210,11 @@
 </row>
 <row>
 <entry><link linkend="mthProfile">profile</link></entry>
-<entry>.</entry>
+<entry>Registers an user callback method that can be used for profiling. The callback method is invoked is invoked as each SQL statement finishes.</entry>
 </row>
 <row>
 <entry><link linkend="mthProgressHandler">progressHandler</link></entry>
-<entry>.</entry>
+<entry>Registers an user callback method that is invoked periodically during long running calls to <emphasis role="italic">exec</emphasis> and <emphasis role="italic">step</emphasis> methods for this database connection.</entry>
 </row>
 <row>
 <entry><link linkend="mthPragma">pragma</link></entry>
@@ -234,7 +234,7 @@
 </row>
 <row>
 <entry><link linkend="mthTrace">trace</link></entry>
-<entry>.</entry>
+<entry>Registers an user callback method that can be used for tracing. The callback method is invoked at various times when an SQL statement is being executed.</entry>
 </row>
 <row>
 <entry><link linkend="mthUpdateHook">updateHook</link></entry>
@@ -1213,13 +1213,7 @@
   <para>
     The <emphasis role="italic">userData</emphasis> argument to a previous invocation of the <emphasis
     role="italic">commitHook</emphasis> method on the same database connection, or .nil if there has not been a previous
-    invocation.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    Additional comments.
+    invocation or the <emphasis role="italic">userData</emphasis> argument was not used on the previous invocation.
   </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Details</emphasis></term>
@@ -1227,17 +1221,6 @@
   <para>
     The functionality of the <emphasis role="italic">commitHook</emphasis> method is similar to that of the SQLite
     <ulink url="http://www.sqlite.org/c3ref/commit_hook.html">sqlite3_commit_hook</ulink> API.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example ...
-<programlisting>
-<![CDATA[
-
-]]>
-</programlisting>
   </para>
   </listitem></varlistentry>
 </variablelist>
@@ -1311,7 +1294,6 @@
 </section>  <!-- End ooSQLiteConnection::commitHookCallBack() -->
 
 
-
 </section>  <!-- End ooSQLiteConnection::commitHook() -->
 
 
@@ -1320,13 +1302,12 @@
 <indexterm><primary>ooSQLiteConnection class</primary><secondary>dbFileName</secondary></indexterm>
 <programlisting>
 <![CDATA[
->>--dbFileName(--+--------+--)---------------------------------------------><
-                  +--type--+
-]]>
-</programlisting>
-
-<para>
-  xx
+>>--dbFileName(--name--)-------------------------><
+]]>
+</programlisting>
+
+<para>
+  Returns the database file name of the database specified by <emphasis role="italic">name</emphasis>.
 </para>
 <variablelist>
   <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
@@ -1334,10 +1315,11 @@
   <para>
     The arguments are:
     <variablelist>
-      <varlistentry><term>TERM</term>
-      <listitem>
-      <para>
-        xx
+      <varlistentry><term>name [required]</term>
+      <listitem>
+      <para>
+        The name of the database to get the file name for. The main database file has the name <emphasis
+        role="italic">main</emphasis>. Attached database names can also be used for <emphasis role="italic">name</emphasis>.
       </para>
       </listitem></varlistentry>
     </variablelist>
@@ -1346,30 +1328,16 @@
   <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
   <listitem>
   <para>
-    xx
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    Additional comments.
+    The file name of the database specified by <emphasis role="italic">name</emphasis>. If there is no attached database
+    <emphasis role="italic">name</emphasis> on the database connection, or if database <emphasis
+    role="italic">name</emphasis> is a temporary or in-memory database, then the empty string is returned.
   </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Details</emphasis></term>
   <listitem>
   <para>
-    Anything ?
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example ...
-<programlisting>
-<![CDATA[
-
-]]>
-</programlisting>
+    The functionality of the <emphasis role="italic">dbFileName</emphasis> method is similar to that of the SQLite
+        <ulink url="http://www.sqlite.org/c3ref/db_filename.html">sqlite3_db_filename</ulink> API.
   </para>
   </listitem></varlistentry>
 </variablelist>
@@ -2451,59 +2419,156 @@
 <indexterm><primary>ooSQLiteConnection class</primary><secondary>profile</secondary></indexterm>
 <programlisting>
 <![CDATA[
->>--profile(--+--------+--)---------------------------------------------><
-                  +--type--+
-]]>
-</programlisting>
-
-<para>
-  xx
+>>--profile(--callBackObj--+------------+--+------------+--)----><
+                           +-,-mthName--+  +-,-userData-+
+]]>
+</programlisting>
+
+<para>
+  Registers an user callback method that can be used for profiling. The callback method is invoked is invoked as each SQL
+  statement finishes.
 </para>
 <variablelist>
   <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
   <listitem>
   <para>
     The arguments are:
+  </para>
     <variablelist>
-      <varlistentry><term>TERM</term>
-      <listitem>
-      <para>
-        xx
+      <varlistentry><term>callBackObj [required]</term>
+      <listitem>
+      <para>
+        An instantiated object with a method that will be invoked for profiling.
+      </para>
+      <para>
+        However, this argument can also be .nil to indicate that any installed profile callback is to be removed.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>mthName [optional]</term>
+      <listitem>
+      <para>
+        The method name that will be invoked during a call back.  By default, the method invoked will be <emphasis
+        role="italic">profileCallBack()</emphasis>. However, the user can specify an alternative method if desired. This
+        argument is ignored when the <emphasis role="italic">callbackObj</emphasis> argument is .nil.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>userData [optional]</term>
+      <listitem>
+      <para>
+        This can be any Rexx object the user desires. The object will be sent as the third argument to the profile callback
+        method when it is invoked.  This argument is ignored when the callbackObj argument is .nil.
       </para>
       </listitem></varlistentry>
     </variablelist>
-  </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
   <listitem>
   <para>
-    xx
+    The <emphasis role="italic">userData</emphasis> argument to a previous invocation of the <emphasis
+    role="italic">trace</emphasis> method on the same database connection, or .nil if there has not been a previous
+    invocation or the <emphasis role="italic">userData</emphasis> argument was not used on the previous invocation.
   </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
   <listitem>
   <para>
-    Additional comments.
+    By default, there is no profile callback installed. There can only be one profile callback per database connection.
+    Setting a new profile callback automatically clears any previously installed callback.
+  </para>
+  <para>
+    The callback method is invoked as each SQL statement finishes. The profile callback contains the original statement text
+    and an estimate of wall-clock time of how long that statement took to run. The example <link
+    linkend="mthProfileCallBack">profileCallBack</link> method has complete details.
   </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Details</emphasis></term>
   <listitem>
   <para>
-    Anything ?
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example ...
-<programlisting>
-<![CDATA[
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
+    The functionality of the <emphasis role="italic">profile</emphasis> method is similar to that of the SQLite
+    <ulink url="http://www.sqlite.org/c3ref/profile.html">sqlite3_profile</ulink> API.
+  </para>
+  </listitem></varlistentry>
+</variablelist>
+
+<section id="mthProfileCallBack"><title>profileCallBack</title>
+<indexterm><primary>profileCallBack</primary></indexterm>
+<indexterm><primary>Callback Methods</primary><secondary>profileCallBack</secondary></indexterm>
+<programlisting>
+<![CDATA[
+>>--profileCallBack(--sql--,--nanoSeconds--,--userData--)--------><
+
+]]>
+</programlisting>
+
+<para>
+  The <emphasis role="italic">profileCallBack</emphasis> method is an example of a user callback method for the <link
+  linkend="mthProfile">profile</link> method. Here the method name of <emphasis role="italic">profileCallBack</emphasis> is
+  used, because it is the default method name if the programmer does not specify his own name in the <emphasis
+  role="italic">profile</emphasis> method. Any method name can be used by specifying it as the second argument to the
+  <emphasis role="italic">profile</emphasis> method.
+</para>
+<para>
+  The profile callback is invoked as each SQL statement finishes executing.
+</para>
+<para>
+  <emphasis role="bold">Note:</emphasis> there is no <emphasis role="italic">profileCallBack</emphasis> method in any
+  ooSQLite class. This method is just used to illustrate how to define a user callback method to be used with when profiling.
+</para>
+<variablelist>
+  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
+  <listitem>
+  <para>
+    The arguments sent to the callback method are:
+  </para>
+    <variablelist>
+      <varlistentry><term>sql [required]</term>
+      <listitem>
+      <para>
+        The original SQL statement text.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>nanoSeconds [required]</term>
+      <listitem>
+      <para>
+        The wall clock time it took to execute the SQL statement. See the remarks section.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>userData [required]</term>
+      <listitem>
+      <para>
+        The user data object specified by the programmer as the third argument to the <emphasis
+        role="italic">trace</emphasis> method. If the programmer did not specify a user data argument, this will be the
+        <computeroutput>.nil</computeroutput> object.
+      </para>
+      </listitem></varlistentry>
+    </variablelist>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
+  <listitem>
+  <para>
+    The programmer must return a whole number value from the callback, the exact number does not matter.
+  </para>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Remarks;</emphasis></term>
+  <listitem>
+  <para>
+    Although the wall clock time is in nanoseconds, the current SQLite implementation is only capable of millisecond
+    resolution making the six least significant digits in the time are meaningless. Future versions of SQLite might provide
+    greater resolution on the profiler callback. The sqlite3_profile() function is considered experimental and is subject to
+    change in future versions of SQLite.
+  </para>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
+  <listitem>
+  <para>
+    The implementation of a <emphasis role="italic">profile</emphasis> callback method is is discussed on the SQLite <ulink
+    url="http://www.sqlite.org/c3ref/profile.html">sqlite3_profile</ulink> page.
+  </para>
+  </listitem></varlistentry>
+</variablelist>
+</section>  <!-- End ooSQLiteConnection::profileCallBack() -->
+
+
 </section>  <!-- End ooSQLiteConnection::profile() -->
 
 
@@ -2512,59 +2577,147 @@
 <indexterm><primary>ooSQLiteConnection class</primary><secondary>progressHandler</secondary></indexterm>
 <programlisting>
 <![CDATA[
->>--progressHandler(--+--------+--)---------------------------------------------><
-                  +--type--+
-]]>
-</programlisting>
-
-<para>
-  xx
+>>--progressHandler(--callBackObj--+-------------+-+----------+--+----------+--)---><
+                                    +-,-instrcts-+ +-,-mName--+  +-,-urData-+
+]]>
+</programlisting>
+
+<para>
+  Registers an user callback method that is invoked periodically during long running calls to <link
+  linkend="mthExec">exec</link>, and <link linkend="mthStepClsStmt">step</link> for this database connection. An example use
+  for this interface is to keep a GUI updated during a large query.
 </para>
 <variablelist>
   <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
   <listitem>
   <para>
     The arguments are:
+  </para>
     <variablelist>
-      <varlistentry><term>TERM</term>
-      <listitem>
-      <para>
-        xx
+      <varlistentry><term>callBackObj [required]</term>
+      <listitem>
+      <para>
+        An instantiated object with a method that will be invoked during long running <emphasis
+        role="italic">exec</emphasis> or <emphasis role="italic">step</emphasis> methods.
+      </para>
+      <para>
+        However, this argument can also be .nil to indicate that any installed progress handler is to be removed.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>instrcts [required]</term>
+      <listitem>
+      <para>
+        The number of virtual machine instructions that are evaluated between successive invocations of the callback. If
+        this argument is less than 1, it also has the effect of removing any installed callback.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>mName [optional]</term>
+      <listitem>
+      <para>
+        The method name that will be invoked during a call back.  By default, the method invoked will be <emphasis
+        role="italic">progressCallBack()</emphasis>. However, the user can specify an alternative method if desired.
+        This argument is ignored when the <emphasis role="italic">callbackObj</emphasis> argument is .nil.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>uData [optional]</term>
+      <listitem>
+      <para>
+        This can be any Rexx object the user desires. The object will be sent as the first and only argument to the progress
+        handler callback method when it is invoked.  This argument is ignored when the callbackObj argument is .nil.
       </para>
       </listitem></varlistentry>
     </variablelist>
-  </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
   <listitem>
   <para>
-    xx
+    Returns a SQLite result <link linkend="sctResultCode">code</link>.
   </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
   <listitem>
   <para>
-    Additional comments.
+    By default, there is no progress handler installed. There can only be one progress handler per database connection.
+    Setting a new progress handler automatically clears any previously installed handler.
   </para>
   </listitem></varlistentry>
   <varlistentry><term><emphasis role="bold">Details</emphasis></term>
   <listitem>
   <para>
-    Anything ?
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example ...
-<programlisting>
-<![CDATA[
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
+    The functionality of the <emphasis role="italic">progressHandler</emphasis> method is similar to that of the SQLite
+    <ulink url="http://www.sqlite.org/c3ref/progress_handler.html">sqlite3_progress_handler</ulink> API.
+  </para>
+  </listitem></varlistentry>
+</variablelist>
+
+<section id="mthProgressCallBack"><title>progressCallBack</title>
+<indexterm><primary>progressCallBack</primary></indexterm>
+<indexterm><primary>Callback Methods</primary><secondary>progressCallBack</secondary></indexterm>
+<programlisting>
+<![CDATA[
+>>--progressCallBack(--userData--)---------------><
+]]>
+</programlisting>
+
+<para>
+  The <emphasis role="italic">progressCallBack</emphasis> method is an example of a user callback method for the <link
+  linkend="mthProgressHandler">progressHandler</link> method. Here the method name of <emphasis
+  role="italic">progressCallBack</emphasis> is used, because it is the default method name if the programmer does not specify
+  his own name in the <emphasis role="italic">progressHandler</emphasis> method. Any method name can be used by specifying it
+  as the second argument to the <emphasis role="italic">progressHandler</emphasis> method.
+</para>
+<para>
+  The progressHandler callback is invoked periodically after a number of virtual machine code instructions are evaluated.
+  This number is specified by the second argument to the <emphasis role="italic">progressHandler</emphasis> method.
+</para>
+<para>
+  <emphasis role="bold">Note:</emphasis> there is no <emphasis role="italic">progressCallBack</emphasis> method in any
+  ooSQLite class. This method is just used to illustrate how to define a user callback method to be used as a progress
+  handler.
+</para>
+<variablelist>
+  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
+  <listitem>
+  <para>
+    The single argument sent to the callback method is:
+  </para>
+    <variablelist>
+      <varlistentry><term>userData [required]</term>
+      <listitem>
+      <para>
+        The user data object specified by the programmer as the fourth argument to the <emphasis
+        role="italic">progressHandler</emphasis> method. If the programmer did not specify a user data argument, this will be
+        the <computeroutput>.nil</computeroutput> object.
+      </para>
+      </listitem></varlistentry>
+    </variablelist>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
+  <listitem>
+  <para>
+    The programmer must return a whole number value from the callback. If the progress handler returns non-zero, the SQLite
+    operation is interrupted. If 0 is returned the operation continues.
+  </para>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Remarks;</emphasis></term>
+  <listitem>
+  <para>
+    The progress handler must not do anything that will modify the database connection that invoked the progress
+    handler. Note that both instantiating a new <link linkend="clsOOSQLiteStmt">ooSQLiteStmt</link> and the <link
+    linkend="mthStepClsStmt">step</link> method modify their database connections.
+  </para>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
+  <listitem>
+  <para>
+    The implementation of a <emphasis role="italic">progressHandler</emphasis> callback method is is discussed on the SQLite <ulink
+    url="http://www.sqlite.org/c3ref/progress_handler.html">sqlite3_progress_handler</ulink> page.
+  </para>
+  </listitem></varlistentry>
+</variablelist>
+</section>  <!-- End ooSQLiteConnection::progressCallBack() -->
+
+
 </section>  <!-- End ooSQLiteConnection::progressHandler() -->
 
 
@@ -3290,7 +3443,150 @@
 <indexterm><primary>ooSQLiteConnection class</primary><secondary>trace</secondary></indexterm>
 <programlisting>
 <![CDATA[
->>--trace(--+--------+--)---------------------------------------------><
+>>--trace(--callBackObj--+------------+--+------------+--)------><
+                         +-,-mthName--+  +-,-userData-+
+]]>
+</programlisting>
+
+<para>
+  Registers an user callback method that can be used for tracing. The callback method is invoked at various times when an SQL
+  statement is being run by <link linkend="mthStepClsStmt">step</link>.
+</para>
+<variablelist>
+  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
+  <listitem>
+  <para>
+    The arguments are:
+  </para>
+    <variablelist>
+      <varlistentry><term>callBackObj [required]</term>
+      <listitem>
+      <para>
+        An instantiated object with a method that will be invoked for tracing.
+      </para>
+      <para>
+        However, this argument can also be .nil to indicate that any installed trace hook is to be removed.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>mthName [optional]</term>
+      <listitem>
+      <para>
+        The method name that will be invoked during a call back.  By default, the method invoked will be <emphasis
+        role="italic">traceCallBack()</emphasis>. However, the user can specify an alternative method if desired. This
+        argument is ignored when the <emphasis role="italic">callbackObj</emphasis> argument is .nil.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>userData [optional]</term>
+      <listitem>
+      <para>
+        This can be any Rexx object the user desires. The object will be sent as the second argument to the trace callback
+        method when it is invoked.  This argument is ignored when the callbackObj argument is .nil.
+      </para>
+      </listitem></varlistentry>
+    </variablelist>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
+  <listitem>
+  <para>
+    The <emphasis role="italic">userData</emphasis> argument to a previous invocation of the <emphasis
+    role="italic">trace</emphasis> method on the same database connection, or .nil if there has not been a previous
+    invocation or the <emphasis role="italic">userData</emphasis> argument was not used on the previous invocation.
+  </para>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
+  <listitem>
+  <para>
+    By default, there is no trace callback installed. There can only be one trace callback per database connection.
+    Setting a new trace callback automatically clears any previously installed callback.
+  </para>
+  <para>
+    The callback method is invoked at various times when an SQL statement is being executed by either <link
+    linkend="mthStepClsStmt">step</link> or <link linkend="mthExec">exec</link>. The trace callback is invoked with the SQL
+    statement text as the statement first begins executing. Additional trace callbacks might occur as each triggered
+    subprogram is entered. The callbacks for triggers contain a SQL comment that identifies the trigger.
+  </para>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
+  <listitem>
+  <para>
+    The functionality of the <emphasis role="italic">trace</emphasis> method is similar to that of the SQLite
+    <ulink url="http://www.sqlite.org/c3ref/profile.html">sqlite3_trace</ulink> API.
+  </para>
+  </listitem></varlistentry>
+</variablelist>
+
+<section id="mthTraceCallBack"><title>traceCallBack</title>
+<indexterm><primary>traceCallBack</primary></indexterm>
+<indexterm><primary>Callback Methods</primary><secondary>traceCallBack</secondary></indexterm>
+<programlisting>
+<![CDATA[
+>>--commitHookCallBack(--sql--,--userData--)-----><
+
+]]>
+</programlisting>
+
+<para>
+  The <emphasis role="italic">traceCallBack</emphasis> method is an example of a user callback method for the <link
+  linkend="mthTrace">trace</link> method. Here the method name of <emphasis role="italic">traceCallBack</emphasis> is used,
+  because it is the default method name if the programmer does not specify his own name in the <emphasis
+  role="italic">trace</emphasis> method. Any method name can be used by specifying it as the second argument to the
+  <emphasis role="italic">trace</emphasis> method.
+</para>
+<para>
+  <emphasis role="bold">Note:</emphasis> there is no <emphasis role="italic">traceCallBack</emphasis> method in any ooSQLite
+  class. This method is just used to illustrate how to define a user callback method to be used with when tracing
+</para>
+<variablelist>
+  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
+  <listitem>
+  <para>
+    The arguments sent to the callback method are:
+  </para>
+    <variablelist>
+      <varlistentry><term>sql [required]</term>
+      <listitem>
+      <para>
+        When the statement first begins executing, <emphasis role="italic">sql</emphasis> will be the SQL statement text.
+        Additional trace callbacks could occur if a triggered subprogram is entered. In these cases, <emphasis
+        role="italic">sql</emphasis> will be a comment that identifies the trigger.
+      </para>
+      </listitem></varlistentry>
+      <varlistentry><term>userData [required]</term>
+      <listitem>
+      <para>
+        The user data object specified by the programmer as the third argument to the <emphasis
+        role="italic">trace</emphasis> method. If the programmer did not specify a user data argument, this will be the
+        <computeroutput>.nil</computeroutput> object.
+      </para>
+      </listitem></varlistentry>
+    </variablelist>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
+  <listitem>
+  <para>
+    The programmer must return a whole number value from the callback, the exact number does not matter.
+  </para>
+  </listitem></varlistentry>
+  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
+  <listitem>
+  <para>
+    The implementation of a <emphasis role="italic">trace</emphasis> callback method is is discussed on the SQLite <ulink
+    url="http://www.sqlite.org/c3ref/profile.html">sqlite3_trace</ulink> page.
+  </para>
+  </listitem></varlistentry>
+</variablelist>
+</section>  <!-- End ooSQLiteConnection::traceCallBack() -->
+
+
+</section>  <!-- End ooSQLiteConnection::trace() -->
+
+
+<section id="mthUpdateHook"><title>updateHook</title>
+<indexterm><primary>updateHook</primary></indexterm>
+<indexterm><primary>ooSQLiteConnection class</primary><secondary>updateHook</secondary></indexterm>
+<programlisting>
+<![CDATA[
+>>--updateHook(--+--------+--)---------------------------------------------><
                   +--type--+
 ]]>
 </programlisting>
@@ -3343,67 +3639,6 @@
   </para>
   </listitem></varlistentry>
 </variablelist>
-</section>  <!-- End ooSQLiteConnection::trace() -->
-
-
-<section id="mthUpdateHook"><title>updateHook</title>
-<indexterm><primary>updateHook</primary></indexterm>
-<indexterm><primary>ooSQLiteConnection class</primary><secondary>updateHook</secondary></indexterm>
-<programlisting>
-<![CDATA[
->>--updateHook(--+--------+--)---------------------------------------------><
-                  +--type--+
-]]>
-</programlisting>
-
-<para>
-  xx
-</para>
-<variablelist>
-  <varlistentry><term><emphasis role="bold">Arguments:</emphasis></term>
-  <listitem>
-  <para>
-    The arguments are:
-    <variablelist>
-      <varlistentry><term>TERM</term>
-      <listitem>
-      <para>
-        xx
-      </para>
-      </listitem></varlistentry>
-    </variablelist>
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Return value:</emphasis></term>
-  <listitem>
-  <para>
-    xx
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term>
-  <listitem>
-  <para>
-    Additional comments.
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Details</emphasis></term>
-  <listitem>
-  <para>
-    Anything ?
-  </para>
-  </listitem></varlistentry>
-  <varlistentry><term><emphasis role="bold">Example:</emphasis></term>
-  <listitem>
-  <para>
-    This example ...
-<programlisting>
-<![CDATA[
-
-]]>
-</programlisting>
-  </para>
-  </listitem></varlistentry>
-</variablelist>
 </section>  <!-- End ooSQLiteConnection::updateHook() -->