From: <mie...@us...> - 2012-06-19 00:06:55
|
Revision: 7921 http://oorexx.svn.sourceforge.net/oorexx/?rev=7921&view=rev Author: miesfeld Date: 2012-06-19 00:06:46 +0000 (Tue, 19 Jun 2012) Log Message: ----------- Work on ooSQLite documentation Modified Paths: -------------- docs/trunk/oosqlite/classicinterface.xml docs/trunk/oosqlite/oointerface.xml docs/trunk/oosqlite/oosqlFunctions.xml docs/trunk/oosqlite/oosqliteBackup.xml docs/trunk/oosqlite/oosqliteConnection.xml docs/trunk/oosqlite/oosqliteConstants.xml docs/trunk/oosqlite/oosqliteMutex.xml docs/trunk/oosqlite/overview.xml docs/trunk/oosqlite/preface.xml Modified: docs/trunk/oosqlite/classicinterface.xml =================================================================== --- docs/trunk/oosqlite/classicinterface.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/classicinterface.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -40,14 +40,24 @@ <chapter id="chpClassicInteface"><title>The Functional Interface to SQLite</title> <indexterm><primary>Classic Rexx Interface</primary></indexterm> <para> - some text + The classic Rexx interface to SQLite provides a complete functional inteface to SQLite. This allows the Rexx + programmer who prefers to not program with objects the same access to the SQLite database <link + linkend="ovvDatabaseEngine">engine</link> as the object-orientated Rexx programmer. </para> <para> - more text + The intent is for the classic Rexx interface to allow access to the complete functionality and feature set of + SQLite. The first release of ooSQLite will not meet, and is not intended to meet, that goal. Lesser used functionality + will be added over time. </para> <para> - The following table lists the routines used in the functional (classic Rexx) interface of the ooSQLite package: + The <link linkend="chpOOInterface">object-orientated</link> and classic Rexx interfaces are developed in tandem. As + each new feature or functionality of SQLite is added to ooSQLite, access to the feature is added to both interfaces at + the same time. There is no SQLite functionality in the classic Rexx interface that can not be accessed through the + object-orientated interface. And, vice versa. </para> +<para> + The following table lists all of the routines used in the functional (classic Rexx) interface of the ooSQLite package: +</para> <table id="tblOOSQLiteRoutines" frame="all"> <title>ooSQLite Routine Listing</title> <tgroup cols="2"> <colspec colwidth="1.75in"> @@ -59,6 +69,34 @@ </thead> <tbody> <row> +<entry><link linkend="rtn-ooSQLiteMerge">ooSQLiteMerge()</link></entry> +<entry>description</entry> +</row> +<row> +<entry><link linkend="rtn-ooSQLiteVersion">ooSQLiteVersion()</link></entry> +<entry>description</entry> +</row> +<row> +<entry><link linkend="rtn-oosqlBackupFinish">oosqlBackupFinish()</link></entry> +<entry>.</entry> +</row> +<row> +<row> +<entry><link linkend="rtn-oosqlBackupInit">oosqlBackupInit()</link></entry> +<entry>.</entry> +</row> +<row> +<entry><link linkend="rtn-oosqlBackupPageCount">oosqlBackupPageCount()</link></entry> +<entry>.</entry> +</row> +<row> +<entry><link linkend="rtn-oosqlBackupRemaining">oosqlBackupRemaining()</link></entry> +<entry>.</entry> +</row> +<row> +<entry><link linkend="rtn-oosqlBackupStep">oosqlBackupStep()</link></entry> +<entry>.</entry> +</row> <entry><link linkend="rtn-oosqlDataCount">oosqlDataCount()</link></entry> <entry>description</entry> </row> Modified: docs/trunk/oosqlite/oointerface.xml =================================================================== --- docs/trunk/oosqlite/oointerface.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/oointerface.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -40,13 +40,21 @@ <chapter id="chpOOInteface"><title>The Object Orientated Interface to SQLite</title> <indexterm><primary>Object Orientated Interface</primary></indexterm> <para> - The object orientated interface to SQLite provides a number of classes whose methods are used to work with SQLite + The object-orientated interface to SQLite provides a number of classes whose methods are used to work with SQLite databases. </para> <para> - more text + The intent is for the object-orientated interface to allow access to the complete functionality and feature set of + SQLite. The first release of ooSQLite will not meet, and is not intended to meet, that goal. Lesser used functionality + will be added over time. </para> <para> + The object-orientated and <link linkend="chpClassicInteface">classic</link> Rexx interfaces are developed in tandem. + As each new feature or functionality of SQLite is added to ooSQLite, access to the feature is added to both interfaces + at the same time. There is no SQLite functionality in the object-orientated interface that can not be accessed through + the classic Rexx interface. And, vice versa. +</para> +<para> The following table lists the classes used in the object orientated interface of the ooSQLite package: </para> <table id="tblOOSQLiteClasses" frame="all"> <title>ooSQLite Class Listing</title> Modified: docs/trunk/oosqlite/oosqlFunctions.xml =================================================================== --- docs/trunk/oosqlite/oosqlFunctions.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/oosqlFunctions.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -197,7 +197,7 @@ an out-of-memory condition or IO error occurred during any prior call of <emphasis role="italic">oosqlBackupStep</emphasis> using the <emphasis role="italic">buHandle</emphasis> argument, then <emphasis role="italic">oosqlBackupFinish</emphasis> returns the corresponding <link - linkend="rowResultCode">error</link> code. + linkend="sctResultCode">error</link> code. </para> </listitem></varlistentry> <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term> @@ -4524,7 +4524,7 @@ <varlistentry><term>openFlags [optional]</term> <listitem> <para> - One or more of the file <link linkend="rowFileOpen">open</link> constants. This flag controls how the database + One or more of the file <link linkend="sctFileOpen">open</link> constants. This flag controls how the database is opened. Do not use any constant marked as <emphasis role="italic">VFS only</emphasis>. Use <link linkend="rtn-ooSQLiteMerge">ooSQLiteMerge()</link> to merge two or more of the constant values to together, if needed. @@ -4546,7 +4546,7 @@ <varlistentry><term><emphasis role="bold">Return value:</emphasis></term> <listitem> <para> - Returns one of the SQLite <link linkend="rowResultCode">result</link> codes. OK on success, otherwise an error + Returns one of the SQLite <link linkend="sctResultCode">result</link> codes. OK on success, otherwise an error code. </para> <para> @@ -4681,8 +4681,8 @@ <varlistentry><term><emphasis role="bold">Return value:</emphasis></term> <listitem> <para> - Returns one of the SQLite <link linkend="rowResultCode">result</link> codes. OK on success, otherwise an error - code. + Returns one of the SQLite <link linkend="sctResultCode">result</link> codes. OK on success, otherwise an error + code. </para> </listitem></varlistentry> <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term> Modified: docs/trunk/oosqlite/oosqliteBackup.xml =================================================================== --- docs/trunk/oosqlite/oosqliteBackup.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/oosqliteBackup.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -143,7 +143,7 @@ </row> <row> <entry><link linkend="atrLastErrCodeClsBackup">lastErrCode</link></entry> -<entry>Reflects the value of the last recorded SQLite <link linkend="rowResultCode">result</link> code.</entry> +<entry>Reflects the value of the last recorded SQLite <link linkend="sctResultCode">result</link> code.</entry> </row> <row> <entry><link linkend="atrLastErrMsgClsBackup">lastErrmsg</link></entry> @@ -436,9 +436,9 @@ </para> <para> In most cases the <emphasis role="italic">initCode</emphasis> value will be a SQLite <link - linkend="rowResultCode">result</link> code and the same as the <link + linkend="sctResultCode">result</link> code and the same as the <link linkend="atrLastErrCodeClsBackup">lastErrCode</link> attribute. However it also could be one of the ooSQLite - specific <link linkend="rowOOSQLiteResultCode">result</link> codes, either OO_UNEXPECTED_RESULT or + specific <link linkend="sctOOSQLiteSpecific">result</link> codes, either OO_UNEXPECTED_RESULT or OO_BACKUP_DB_ERRSTATE. </para> <para> @@ -484,7 +484,7 @@ <para> The <emphasis role="italic">lastErrCode</emphasis> reflects the value of the last recorded SQLite <link - linkend="rowResultCode">result</link> code. + linkend="sctResultCode">result</link> code. </para> <variablelist> <varlistentry><term><emphasis role="bold">lastErrCode get:</emphasis></term> @@ -837,7 +837,7 @@ or not the backup operation completed. If an out-of-memory condition or IO error occurred during any prior invocation of <emphasis role="italic">step</emphasis> on this <computeroutput>ooSQLiteBackup</computeroutput> object, then <emphasis role="italic">finish</emphasis> returns the - corresponding <link linkend="rowResultCode">error</link> code. + corresponding <link linkend="sctResultCode">error</link> code. </para> </listitem></varlistentry> <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term> Modified: docs/trunk/oosqlite/oosqliteConnection.xml =================================================================== --- docs/trunk/oosqlite/oosqliteConnection.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/oosqliteConnection.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -734,7 +734,7 @@ <varlistentry><term><emphasis role="bold">Return value:</emphasis></term> <listitem> <para> - An ooSQLite <link linkend="rowResultCode">result</link> code. + An ooSQLite <link linkend="tblOOSQLiteConstants">result</link> code. </para> </listitem></varlistentry> <varlistentry><term><emphasis role="bold">Remarks:</emphasis></term> Modified: docs/trunk/oosqlite/oosqliteConstants.xml =================================================================== --- docs/trunk/oosqlite/oosqliteConstants.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/oosqliteConstants.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -50,12 +50,13 @@ <section id="sctMethodsOOSQLiteConstants"><title>Constant Table</title> <para> - The following table lists the constant values provided by the ooSQLiteConstants class: + The following table lists <emphasis role="italic">all</emphasis> of the constant values provided by the + ooSQLiteConstants class. Additional tables list subsets of the constant values grouped by purpose. </para> <table id="tblOOSQLiteConstants" frame="all"> <title>The ooSQLite Constants</title> <tgroup cols="2"> -<colspec colwidth="2.05in"> +<colspec colwidth="2.20in"> <thead> <row> <entry>Constant</entry> @@ -64,7 +65,7 @@ </thead> <tbody> <!-- NOTE these 3 constants must be updated each time a new version of the SQLite database engine is embedded in ooSQLite --> -<row id="CompileTimeVersion"> +<row> <entry align="center"><emphasis role="bold"></emphasis></entry> <entry align="center"><emphasis role="bold">Compile-Time Version Constants</emphasis></entry> </row> @@ -103,7 +104,7 @@ </row> <row> <entry>OO_BACKUP_IN_PROGRESS</entry> -<entry>A method was invoked on this database connection object when the database is the destionaion of a backup in progress.</entry> +<entry>A method was invoked on this database connection object when the database is the destnation of a backup in progress.</entry> </row> <row> <entry>OO_BACKUP_DB_ERRSTATE</entry> @@ -128,7 +129,7 @@ <row> <entry align="center"><emphasis role="bold"></emphasis></entry> -<entry id="rowResultCode" align="center"><emphasis role="bold">Result Code Constants</emphasis></entry> +<entry align="center"><emphasis role="bold">Result Code Constants</emphasis></entry> </row> <row> <entry>OK</entry> @@ -370,7 +371,7 @@ <entry></entry> </row> -<row id="rowFileOpen"> +<row> <entry align="center"><emphasis role="bold"></emphasis></entry> <entry align="center"><emphasis role="bold">File Open Constants</emphasis></entry> </row> @@ -589,6 +590,19 @@ <entry align="center"><emphasis role="bold">Authorizer Return Code Constants</emphasis></entry> </row> <row> +<entry>DENY</entry> +<entry>Abort the SQL statement with an error</entry> +</row> +<row> +<entry>IGNORE</entry> +<entry>Don't allow access, but don't generate an error</entry> +</row> + +<row> +<entry align="center"><emphasis role="bold"></emphasis></entry> +<entry align="center"><emphasis role="bold">xAccess VFS Method Constants</emphasis></entry> +</row> +<row> <entry>ACCESS_EXISTS</entry> <entry></entry> </row> @@ -755,19 +769,6 @@ <row> <entry align="center"><emphasis role="bold"></emphasis></entry> -<entry align="center"><emphasis role="bold">Authorizer Return Code Constants</emphasis></entry> -</row> -<row> -<entry>DENY</entry> -<entry>Abort the SQL statement with an error</entry> -</row> -<row> -<entry>IGNORE</entry> -<entry>Don't allow access, but don't generate an error</entry> -</row> - -<row> -<entry align="center"><emphasis role="bold"></emphasis></entry> <entry align="center"><emphasis role="bold">File Control Opcode Constants</emphasis></entry> </row> <row> @@ -983,7 +984,7 @@ <entry></entry> </row> -<row id="rowMutexType"> +<row> <entry align="center"><emphasis role="bold"></emphasis></entry> <entry align="center"><emphasis role="bold">Mutex Type Constants</emphasis></entry> </row> @@ -1175,6 +1176,1489 @@ </table> </section> + +<section id="sctCompileTimeVersion"><title>Compile Time Version Constants</title> +<para> + The following table lists the compile time version constants: +</para> +<table id="tblCompileTimeVersion" frame="all"> +<title>The Compile Time Version Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<!-- NOTE these 3 constants ... --> +<row> +<entry>VERSION</entry> +<entry>"3.7.13"</entry> +</row> +<row> +<entry>VERSION_NUMBER</entry> +<entry>3007013</entry> +</row> +<row> +<entry>SOURCE_ID</entry> +<entry>"2012-06-11 02:05:22 f5b5a13f7394dc143aa136f1d4faba6839eaa6dc"</entry> +</row> + +</tbody></tgroup> +</table> +</section> + + +<section id="sctOOSQLiteSpecific"><title>ooSQLite Specific Constants</title> +<para> + The following table lists constants specific to ooSQLite. These constants have no counterpart in SQLite: +</para> +<table id="tblOOSQLiteSpecific" frame="all"> +<title>The ooSQLite Specific Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> + +<row> +<entry align="center"><emphasis role="bold"></emphasis></entry> +<entry align="center"><emphasis role="bold">ooSQLite Result Code Constants</emphasis></entry> +</row> +<row> +<entry>OO_INTERNAL_ERR</entry> +<entry>The ooSQLite framework encountered an error internally that it is unprepared to handle. It was not considered possible for the error to happen.</entry> +</row> +<row> +<entry>OO_WRONG_ARG_TYPE</entry> +<entry>An argument to a method or function is not the correct type. For instance the argument requires a number, but the supplied argument is not a number.</entry> +</row> +<row> +<entry>OO_UNEXPECTED_RESULT</entry> +<entry>The SQLite database engine returned a result that was considered to be impossible to produce.</entry> +</row> +<row> +<entry>OO_BACKUP_IN_PROGRESS</entry> +<entry>A method was invoked on this database connection object when the database is the destnation of a backup in progress.</entry> +</row> +<row> +<entry>OO_BACKUP_DB_ERRSTATE</entry> +<entry>The specified source or destination database for a backup operation is in an error state.</entry> +</row> +<row> +<entry align="center"><emphasis role="bold"></emphasis></entry> +<entry align="center"><emphasis role="bold">ooSQLite Result Set Format Constants</emphasis></entry> +</row> +<row> +<entry>OO_ARRAY_OF_ARRAYS</entry> +<entry>Result sets are returned as an array where each item in the array is an array. The array at item 1 is an array of the column names. The following items are the records of the result set.</entry> +</row> +<row> +<entry>OO_ARRAY_OF_DIRECTORIES</entry> +<entry>Result sets are returned as an array where each item in the array is a Directory object. Each directory in the array contains the values of the columns in a row, where the indexes are the names of the columns.</entry> +</row> +<row> +<entry>OO_STEM_OF_STEMS</entry> +<entry>Result sets are returned as a stem withe tails 0 through the number of rows. Tail 0 contains the number rows and tails 1 through n contain a stem for each row. The tails of stem of a row are the column names for the rows.</entry> +</row> + +</tbody></tgroup> +</table> +</section> + + +<section id="sctResultCode"><title>Result Code Constants</title> +<para> + The following table lists the result code constants. Note that these result code constants also contain what the + SQLite documentation referes to as the <emphasis role="italic">extended</emphasis> result codes. ooSQLite has the + extended result codes enabled at compile time, so there is no distinction between the result codes and the extended + result codes: +</para> +<table id="tblResultCode" frame="all"> +<title>The Result Code Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.10in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> + +<row> +<entry>OK</entry> +<entry>Successful result</entry> +</row> +<row> +<entry>ERROR</entry> +<entry>SQL error or missing database</entry> +</row> +<row> +<entry>INTERNAL</entry> +<entry>Internal logic error in SQLite</entry> +</row> +<row> +<entry>PERM</entry> +<entry>Access permission denied</entry> +</row> +<row> +<entry>ABORT</entry> +<entry>Callback routine requested an abort</entry> +</row> +<row> +<entry>BUSY</entry> +<entry>The database file is locked</entry> +</row> +<row> +<entry>LOCKED</entry> +<entry>A table in the database is locked</entry> +</row> +<row> +<entry>NOMEM</entry> +<entry>A malloc() failed</entry> +</row> +<row> +<entry>READONLY</entry> +<entry>Attempt to write a readonly database</entry> +</row> +<row> +<entry>INTERRUPT</entry> +<entry>Operation terminated by sqlite3_interrupt()</entry> +</row> +<row> +<entry>IOERR</entry> +<entry>Some kind of disk I/O error occurred</entry> +</row> +<row> +<entry>CORRUPT</entry> +<entry>The database disk image is malformed</entry> +</row> +<row> +<entry>NOTFOUND</entry> +<entry>Unknown opcode in sqlite3_file_control()</entry> +</row> +<row> +<entry>FULL</entry> +<entry>Insertion failed because database is full</entry> +</row> +<row> +<entry>CANTOPEN</entry> +<entry>Unable to open the database file</entry> +</row> +<row> +<entry>PROTOCOL</entry> +<entry>Database lock protocol error</entry> +</row> +<row> +<entry>EMPTY</entry> +<entry>Database is empty</entry> +</row> +<row> +<entry>SCHEMA</entry> +<entry>The database schema changed</entry> +</row> +<row> +<entry>TOOBIG</entry> +<entry>String or BLOB exceeds size limit</entry> +</row> +<row> +<entry>CONSTRAINT</entry> +<entry>Abort due to constraint violation</entry> +</row> +<row> +<entry>MISMATCH</entry> +<entry>Data type mismatch</entry> +</row> +<row> +<entry>MISUSE</entry> +<entry>Library used incorrectly</entry> +</row> +<row> +<entry>NOLFS</entry> +<entry>Uses OS features not supported on host</entry> +</row> +<row> +<entry>AUTH</entry> +<entry>Authorization denied</entry> +</row> +<row> +<entry>FORMAT</entry> +<entry>Auxiliary database format error</entry> +</row> +<row> +<entry>RANGE</entry> +<entry>2nd parameter to sqlite3_bind out of range</entry> +</row> +<row> +<entry>NOTADB</entry> +<entry>File opened that is not a database file</entry> +</row> +<row> +<entry>ROW</entry> +<entry>sqlite3_step() has another row ready</entry> +</row> +<row> +<entry>DONE</entry> +<entry>sqlite3_step() has finished executing</entry> +</row> +<!-- Support for the extended error codes is compiled in. So we make no distiction between a result + code and an extended result code. +<row> +<entry align="center"><emphasis role="bold"></emphasis></entry> +<entry align="center"><emphasis role="bold">Extended Result Code Constants</emphasis></entry> +</row> +--> +<row> +<entry>IOERR_READ</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_SHORT_READ</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_WRITE</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_FSYNC</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_DIR_FSYNC</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_TRUNCATE</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_FSTAT</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_UNLOCK</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_RDLOCK</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_DELETE</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_BLOCKED</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_NOMEM</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_ACCESS</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_CHECKRESERVEDLOCK</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_LOCK</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_CLOSE</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_DIR_CLOSE</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_SHMOPEN</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_SHMSIZE</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_SHMLOCK</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_SHMMAP</entry> +<entry></entry> +</row> +<row> +<entry>IOERR_SEEK</entry> +<entry></entry> +</row> +<row> +<entry>LOCKED_SHAREDCACHE</entry> +<entry></entry> +</row> +<row> +<entry>BUSY_RECOVERY</entry> +<entry></entry> +</row> +<row> +<entry>CANTOPEN_NOTEMPDIR</entry> +<entry></entry> +</row> +<row> +<entry>CORRUPT_VTAB</entry> +<entry></entry> +</row> +<row> +<entry>READONLY_RECOVERY</entry> +<entry></entry> +</row> +<row> +<entry>READONLY_CANTLOCK</entry> +<entry></entry> +</row> +<row> +<entry>ABORT_ROLLBACK</entry> +<entry></entry> +</row> + +</tbody></tgroup> +</table> +</section> + + +<section id="sctFileOpen"><title>File Open Constants</title> +<para> + The following table lists the file open constants: +</para> +<table id="tblFileOpen" frame="all"> +<title>The File Open Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> + +<row> +<entry>OPEN_READONLY</entry> +<entry>Ok for sqlite3_open_v2(). The database is opened in read-only mode. If the database does not already exist, an error is returned.</entry> +</row> +<row> +<entry>OPEN_READWRITE</entry> +<entry>Ok for sqlite3_open_v2(). The database is opened for reading and writing if possible, or reading only if the file is write protected by the operating system. In either case the database must already exist, otherwise an error is returned</entry> +</row> +<row> +<entry>OPEN_CREATE</entry> +<entry>Ok for sqlite3_open_v2(). When merged with OPEN_READWRITE, the database is opened for reading and writing, and is created if it does not already exist.</entry> +</row> +<row> +<entry>OPEN_DELETEONCLOSE</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_EXCLUSIVE</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_AUTOPROXY</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_URI</entry> +<entry>Ok for sqlite3_open_v2()</entry> +</row> +<row> +<entry>OPEN_MAIN_DB</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_TEMP_DB</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_TRANSIENT_DB</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_MAIN_JOURNAL</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_TEMP_JOURNAL</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_SUBJOURNAL</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_MASTER_JOURNAL</entry> +<entry>VFS only</entry> +</row> +<row> +<entry>OPEN_NOMUTEX</entry> +<entry>Ok for sqlite3_open_v2()</entry> +</row> +<row> +<entry>OPEN_FULLMUTEX</entry> +<entry>Ok for sqlite3_open_v2()</entry> +</row> +<row> +<entry>OPEN_SHAREDCACHE</entry> +<entry>Ok for sqlite3_open_v2()</entry> +</row> +<row> +<entry>OPEN_PRIVATECACHE</entry> +<entry>Ok for sqlite3_open_v2()</entry> +</row> +<row> +<entry>OPEN_WAL</entry> +<entry>VFS only</entry> +</row> + +</tbody></tgroup> +</table> +</section> + + +<section id="sctAuthorizerAction"><title>Authorizer Action Constants</title> +<para> + The following table lists the authorizer action constants: +</para> +<table id="tblAuthorizerAction" frame="all"> +<title>The Authorizer Action Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>CREATE_INDEX</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_TABLE</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_TEMP_INDEX</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_TEMP_TABLE</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_TEMP_TRIGGER</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_TEMP_VIEW</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_TRIGGER</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_VIEW</entry> +<entry></entry> +</row> +<row> +<entry>DELETE</entry> +<entry></entry> +</row> +<row> +<entry>DROP_INDEX</entry> +<entry></entry> +</row> +<row> +<entry>DROP_TABLE</entry> +<entry></entry> +</row> +<row> +<entry>DROP_TEMP_INDEX</entry> +<entry></entry> +</row> +<row> +<entry>DROP_TEMP_TABLE</entry> +<entry></entry> +</row> +<row> +<entry>DROP_TEMP_TRIGGER</entry> +<entry></entry> +</row> +<row> +<entry>DROP_TEMP_VIEW</entry> +<entry></entry> +</row> +<row> +<entry>DROP_TRIGGER</entry> +<entry></entry> +</row> +<row> +<entry>DROP_VIEW</entry> +<entry></entry> +</row> +<row> +<entry>INSERT</entry> +<entry></entry> +</row> +<row> +<entry>PRAGMA</entry> +<entry></entry> +</row> +<row> +<entry>READ</entry> +<entry></entry> +</row> +<row> +<entry>SELECT</entry> +<entry></entry> +</row> +<row> +<entry>TRANSACTION</entry> +<entry></entry> +</row> +<row> +<entry>UPDATE</entry> +<entry></entry> +</row> +<row> +<entry>ATTACH</entry> +<entry></entry> +</row> +<row> +<entry>DETACH</entry> +<entry></entry> +</row> +<row> +<entry>ALTER_TABLE</entry> +<entry></entry> +</row> +<row> +<entry>REINDEX</entry> +<entry></entry> +</row> +<row> +<entry>ANALYZE</entry> +<entry></entry> +</row> +<row> +<entry>CREATE_VTABLE</entry> +<entry></entry> +</row> +<row> +<entry>DROP_VTABLE</entry> +<entry></entry> +</row> +<row> +<entry>FUNCTION</entry> +<entry></entry> +</row> +<row> +<entry>SAVEPOINT</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctAuthorizerReturnCode"><title>Authorizer Return Code Constants</title> +<para> + The following table lists the authorizer return code constants: +</para> +<table id="tblAuthorizerReturnCode" frame="all"> +<title>The Authorizer Return Code Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>DENY</entry> +<entry>Abort the SQL statement with an error</entry> +</row> +<row> +<entry>IGNORE</entry> +<entry>Don't allow access, but don't generate an error</entry> +</row> +</tbody></tgroup> +</table> +</section> + +<section id="sctXAccessVFSMethod"><title>xAccess VFS Method Constants</title> +<para> + The following table lists the authorizer return code constants: +</para> +<table id="tblXAccessVFSMethod" frame="all"> +<title>The xAccess VFS Method Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> + +<row> +<entry>ACCESS_EXISTS</entry> +<entry></entry> +</row> +<row> +<entry>ACCESS_READWRITE</entry> +<entry>Used by PRAGMA temp_store_directory</entry> +</row> +<row> +<entry>ACCESS_READ</entry> +<entry>Unused</entry> +</row> + +</tbody></tgroup> +</table> +</section> + + +<section id="sctCheckpointOperationParameter"><title>Checkpoint Operation Parameter Constants</title> +<para> + The following table lists the checkpoint operation parameter constants: +</para> +<table id="tblCheckpointOperationParameter" frame="all"> +<title>The Checkpoint Operation Parameter Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> + +<row> +<entry>CHECKPOINT_PASSIVE</entry> +<entry></entry> +</row> +<row> +<entry>CHECKPOINT_FULL</entry> +<entry></entry> +</row> +<row> +<entry>CHECKPOINT_RESTART</entry> +<entry></entry> +</row> + +</tbody></tgroup> +</table> +</section> + + +<section id="sctConfigurationOption"><title>Configuration Option Constants</title> +<para> + The following table lists the configuration options constants: +</para> +<table id="tblConfigurationOptions" frame="all"> +<title>The Configuration Options Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>CONFIG_SINGLETHREAD</entry> +<entry>nil</entry> +</row> +<row> +<entry>CONFIG_MULTITHREAD</entry> +<entry>nil</entry> +</row> +<row> +<entry>CONFIG_SERIALIZED</entry> +<entry>nil</entry> +</row> +<row> +<entry>CONFIG_MALLOC</entry> +<entry>sqlite3_mem_methods*</entry> +</row> +<row> +<entry>CONFIG_GETMALLOC</entry> +<entry>sqlite3_mem_methods*</entry> +</row> +<row> +<entry>CONFIG_SCRATCH</entry> +<entry>void*, int sz, int N</entry> +</row> +<row> +<entry>CONFIG_PAGECACHE</entry> +<entry>void*, int sz, int N</entry> +</row> +<row> +<entry>CONFIG_HEAP</entry> +<entry>void*, int nByte, int min</entry> +</row> +<row> +<entry>CONFIG_MEMSTATUS</entry> +<entry>boolean</entry> +</row> +<row> +<entry>CONFIG_MUTEX</entry> +<entry>sqlite3_mutex_methods*</entry> +</row> +<row> +<entry>CONFIG_GETMUTEX</entry> +<entry>sqlite3_mutex_methods*</entry> +</row> +<row> +<entry>CONFIG_LOOKASIDE</entry> +<entry>int int</entry> +</row> +<row> +<entry>CONFIG_PCACHE</entry> +<entry>no-op</entry> +</row> +<row> +<entry>CONFIG_GETPCACHE</entry> +<entry>no-op</entry> +</row> +<row> +<entry>CONFIG_LOG</entry> +<entry>xFunc, void*</entry> +</row> +<row> +<entry>CONFIG_URI</entry> +<entry>int</entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctDBConnectionConfiguration"><title>DB Connection Configuration Constants</title> +<para> + The following table lists the DB connection configuration constants: +</para> +<table id="tblDBConnectionConfiguration" frame="all"> +<title>The DB Connection Configuration Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>DBCONFIG_LOOKASIDE</entry> +<entry>void* int int</entry> +</row> +<row> +<entry>DBCONFIG_ENABLE_FKEY</entry> +<entry>int int*</entry> +</row> +<row> +<entry>DBCONFIG_ENABLE_TRIGGER</entry> +<entry>int int*</entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctDBStatusParameter"><title>DB Status Parameter Constants</title> +<para> + The following table lists the DB status parameter constants: +</para> +<table id="tblDBStatusParameter" frame="all"> +<title>The DB Status Parameter Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>DBSTATUS_LOOKASIDE_USED</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_CACHE_USED</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_SCHEMA_USED</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_STMT_USED</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_LOOKASIDE_HIT</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_LOOKASIDE_MISS_SIZE</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_LOOKASIDE_MISS_FULL</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_CACHE_HIT</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_CACHE_MISS</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_CACHE_WRITE</entry> +<entry></entry> +</row> +<row> +<entry>DBSTATUS_MAX</entry> +<entry>Largest defined DBSTATUS</entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctFileControlOpcode"><title>File Control Opcode Constants</title> +<para> + The following table lists the file control opcode constants: +</para> +<table id="tblFileControlOpcode" frame="all"> +<title>The File Control Opcode Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>FCNTL_LOCKSTATE</entry> +<entry></entry> +</row> +<row> +<entry>GET_LOCKPROXYFILE</entry> +<entry></entry> +</row> +<row> +<entry>SET_LOCKPROXYFILE</entry> +<entry></entry> +</row> +<row> +<entry>LAST_ERRNO</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_SIZE_HINT</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_CHUNK_SIZE</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_FILE_POINTER</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_SYNC_OMITTED</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_WIN32_AV_RETRY</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_PERSIST_WAL</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_OVERWRITE</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_VFSNAME</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_POWERSAFE_OVERWRITE</entry> +<entry></entry> +</row> +<row> +<entry>FCNTL_PRAGMA</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctFundamentalDatatype"><title>Fundamental Datatype Constants</title> +<para> + The following table lists the fundamental datatype constants: +</para> +<table id="tblFundamentalDatatype" frame="all"> +<title>The Fundamental Datatype Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>INTEGER</entry> +<entry></entry> +</row> +<row> +<entry>FLOAT</entry> +<entry></entry> +</row> +<row> +<entry>BLOB</entry> +<entry></entry> +</row> +<row> +<entry>NULL</entry> +<entry></entry> +</row> +<row> +<entry>TEXT</entry> +<entry></entry> +</row> + +</tbody></tgroup> +</table> +</section> + + +<section id="sctDeviceCharacteristic"><title>Device Characteristic Constants</title> +<para> + The following table lists the device characteristic constants: +</para> +<table id="tblDeviceCharacteristic" frame="all"> +<title>The Device Characteristic Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>IOCAP_ATOMIC</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC512</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC1K</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC2K</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC4K</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC8K</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC16K</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC32K</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_ATOMIC64K</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_SAFE_APPEND</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_SEQUENTIAL</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_UNDELETABLE_WHEN_OPEN</entry> +<entry></entry> +</row> +<row> +<entry>IOCAP_POWERSAFE_OVERWRITE</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctRunTimeLimit"><title>Run-Time Limit Constants</title> +<para> + The following table lists the run-time limit constants: +</para> +<table id="tblRunTimeLimit" frame="all"> +<title>The Run-Time Limit Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>LIMIT_LENGTH</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_SQL_LENGTH</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_COLUMN</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_EXPR_DEPTH</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_COMPOUND_SELECT</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_VDBE_OP</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_FUNCTION_ARG</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_ATTACHED</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_LIKE_PATTERN_LENGTH</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_VARIABLE_NUMBER</entry> +<entry></entry> +</row> +<row> +<entry>LIMIT_TRIGGER_DEPTH</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctFileLocking"><title>File Locking Constants</title> +<para> + The following table lists the file locking constants: +</para> +<table id="tblFileLocking" frame="all"> +<title>The File Locking Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>LOCK_NONE</entry> +<entry></entry> +</row> +<row> +<entry>LOCK_SHARED</entry> +<entry></entry> +</row> +<row> +<entry>LOCK_RESERVED</entry> +<entry></entry> +</row> +<row> +<entry>LOCK_PENDING</entry> +<entry></entry> +</row> +<row> +<entry>LOCK_EXCLUSIVE</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctMutexType"><title>Mutex Type Constants</title> +<para> + The following table lists the mutex type constants: +</para> +<table id="tblMutexType" frame="all"> +<title>The Mutex Type Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>MUTEX_FAST</entry> +<entry></entry> +</row> +<row> +<entry>MUTEX_RECURSIVE</entry> +<entry></entry> +</row> +<row> +<entry>MUTEX_STATIC_MASTER</entry> +<entry></entry> +</row> +<row> +<entry>MUTEX_STATIC_MEM</entry> +<entry>sqlite3_malloc()</entry> +</row> +<row> +<entry>MUTEX_STATIC_OPEN</entry> +<entry>sqlite3BtreeOpen()</entry> +</row> +<row> +<entry>MUTEX_STATIC_PRNG</entry> +<entry>sqlite3_random()</entry> +</row> +<row> +<entry>MUTEX_STATIC_LRU</entry> +<entry>lru page list</entry> +</row> +<row> +<entry>MUTEX_STATIC_PMEM</entry> +<entry>sqlite3PageMalloc()</entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctXShmLockVFS"><title>xShmLock VFS Constants</title> +<para> + The following table lists the xShmLock VFS constants: +</para> +<table id="tblXShmLockVFS" frame="all"> +<title>The xShmLock VFS Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>SHM_UNLOCK</entry> +<entry></entry> +</row> +<row> +<entry>SHM_LOCK</entry> +<entry></entry> +</row> +<row> +<entry>SHM_SHARED</entry> +<entry></entry> +</row> +<row> +<entry>SHM_EXCLUSIVE</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctDestructorBehavior"><title>Destructor Behavior Constants</title> +<para> + The following table lists the destructor behavior constants: +</para> +<table id="tblDestructorBehavior" frame="all"> +<title>The Destructor Behavior Open Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>STATIC</entry> +<entry></entry> +</row> +<row> +<entry>TRANSIENT</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctStatusParameter"><title>Status Parameter Constants</title> +<para> + The following table lists the status parameter constants: +</para> +<table id="tblStatusParameter" frame="all"> +<title>The Status Parameter Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>STATUS_MEMORY_USED</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_PAGECACHE_USED</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_PAGECACHE_OVERFLOW</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_SCRATCH_USED</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_SCRATCH_OVERFLOW</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_MALLOC_SIZE</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_PARSER_STACK</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_PAGECACHE_SIZE</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_SCRATCH_SIZE</entry> +<entry></entry> +</row> +<row> +<entry>STATUS_MALLOC_COUNT</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctStatusParameterStmt"><title>Status Parameter (stmt) Constants</title> +<para> + The following table lists the status parameter (stmt) constants: +</para> +<table id="tblStatusParameterStmt" frame="all"> +<title>The Status Parameter (stmt) Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>STMTSTATUS_FULLSCAN_STEP</entry> +<entry></entry> +</row> +<row> +<entry>STMTSTATUS_SORT</entry> +<entry></entry> +</row> +<row> +<entry>STMTSTATUS_AUTOINDEX</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctSynchronization"><title>Synchronization Constants</title> +<para> + The following table lists the synchronization constants: +</para> +<table id="tblSynchronization" frame="all"> +<title>The Synchronization Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>SYNC_NORMAL</entry> +<entry></entry> +</row> +<row> +<entry>SYNC_FULL</entry> +<entry></entry> +</row> +<row> +<entry>SYNC_DATAONLY</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctTextEncoding"><title>Text Encoding Constants</title> +<para> + The following table lists the text encoding constants: +</para> +<table id="tblTextEncoding" frame="all"> +<title>The Text Encoding Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>UTF8</entry> +<entry></entry> +</row> +<row> +<entry>UTF16LE</entry> +<entry></entry> +</row> +<row> +<entry>UTF16BE</entry> +<entry></entry> +</row> +<row> +<entry>UTF16</entry> +<entry>Use native byte order</entry> +</row> +<row> +<entry>ANY</entry> +<entry>sqlite3_create_function only</entry> +</row> +<row> +<entry>UTF16_ALIGNED</entry> +<entry>sqlite3_create_collation only</entry> +</row> +</tbody></tgroup> +</table> +</section> + + +<section id="sctVirtualTableConfigOption"><title>Virtual Table Config Option Constants</title> +<para> + The following table lists the virtual table config option constants: +</para> +<table id="tblVirtualTableConfigOption" frame="all"> +<title>The Virtual Table Config Option Constants</title> +<tgroup cols="2"> +<colspec colwidth="2.05in"> +<thead> +<row> +<entry>Constant</entry> +<entry>Meaning</entry> +</row> +</thead> +<tbody> +<row> +<entry>VTAB_CONSTRAINT_SUPPORT</entry> +<entry></entry> +</row> +</tbody></tgroup> +</table> +</section> + + <section id="mthMerge"><title>merge (Class method)</title> <indexterm><primary>merge</primary></indexterm> <indexterm><primary>ooSQLiteConstant class</primary><secondary>merge</secondary></indexterm> Modified: docs/trunk/oosqlite/oosqliteMutex.xml =================================================================== --- docs/trunk/oosqlite/oosqliteMutex.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/oosqliteMutex.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -106,7 +106,7 @@ <varlistentry><term>type [optional]</term> <listitem> <para> - One of the SQLite <link linkend="rowMutexType">>muxtex</link> type constants. However this can only be: + One of the SQLite <link linkend="sctMutexType">>muxtex</link> type constants. However this can only be: MUTEX_RECURSIVE or MUTEX_FAST. This argument defaults to MUTEX_FAST </para> </listitem></varlistentry> Modified: docs/trunk/oosqlite/overview.xml =================================================================== --- docs/trunk/oosqlite/overview.xml 2012-06-18 14:46:52 UTC (rev 7920) +++ docs/trunk/oosqlite/overview.xml 2012-06-19 00:06:46 UTC (rev 7921) @@ -40,19 +40,60 @@ <chapter id="chapOverview"><title>Brief Overview</title> <indexterm><primary>overview</primary></indexterm> <para> - ooSQLite is a + ooSQLite is a direct interface to SQLite. SQLite is an in-process library that implements a self-contained, + serverless, zero-configuration, transactional SQL database <link linkend="ovvDatabaseEngine">engine</link>. </para> <para> + SQLite is an <link linkend="ovvEmbedded">embedded</link> SQL database engine. Unlike most other SQL databases, SQLite + does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL + database with multiple tables, indices, triggers, and views, is contained in a single disk file. The database file + format is cross-platform - you can freely copy a database between 32-bit and 64-bit systems or between big-endian and + little-endian architectures. </para> +<para> + ooSQLite provides both an object-orientated <link linkend="chpOOInteface">interface</link> and a classic Rexx <link + linkend="chpClassicInteface">interface</link> to SQLite. Some people refer to this as a <emphasis + role="italic">binding</emphasis>. The binding allows a programmer to write applicaions using the Rexx programming + language that access and use databases through the SQLite database engine. +</para> <section id="sctGettingStarted"><title>Getting Started</title> <para> - Text + If the user of ooSQLite is unfamilar with SQLite itself, the best way to get started is to browse the SQLite <ulink + url="http://www.sqlite.org/index.html">website</ulink> to get a basic feel for what SQLite is. </para> <para> - Text - In addition the <link - linkend="helpGettingHelp">getting help </link> section of this reference lists a number of resources for the + To actually use the ooSQLite package in an ooRexx program, simply <emphasis role="italic">require</emphasis> the + <computeroutput>ooSQLite.cls</computeroutput> in the progam and ensure that + <computeroutput>ooSQLite.cls</computeroutput> is in a location where the operating system can find it: + +<programlisting> +<![CDATA[ +::requires 'ooSQLite.cls' +]]> +</programlisting> + + This is no different than using any other external package in ooRexx, such as + <computeroutput>ooDialog.cls</computeroutput>, <computeroutput>rxftp.cls</computeroutput>, + <computeroutput>cvsStream.cls</computeroutput>, etc.. +</para> +<para> + Next, the user should familarize herself with the example programs provided by the ooSQLite package. In the + installation location of ooSQLite are the <computeroutput>examples</computeroutput> and + <computeroutput>testing</computeroutput> subdirectories. These direcories contain examples meant to be run from the + command line. The user should run the examples after reading through the source code. The examples are meant to be + played with. That is, the user should make small changes to the samples and observe what happens. As in any activity, + experience is the best teacher. +</para> +<para> + Using the examples should be done in conjunction with reading this reference manual. The best advice would be to read + the source code in an example and look up each class and method in the example in the reference. Or each function call + in the example if the reader is more interested in the classic Rexx interface. +</para> +<para> + If things are unclear, then post a question to the ooRexx user's list. The list is easy to <ulink + url="http://sourceforge.net/mail/?group_id=119701">subscribe</ulink> to. In addition the <link + linkend="helpGettingHelp">getting help </link> section of this reference lists a number of other resources for the programmer with questions about ooSQLite. </para> </section> @@ -74,189 +115,212 @@ </para> </section> - </section> <!-- End: Definition of Terms --> <section id="sctGeneralOOSQLite"><title>Common Concepts</title> <para> + There are some common concepts shared throughout ooSQLite whether the programmer is using the object-orientated <link + linkend="chpOOInteface">interface</link> or the classic Rexx <link linkend="chpClassicInteface">interface</link>. Some + of these concepts are briefly discussed here. +</para> + +<section id="ovvEmbedded"><title>Embedded</title> +<para> The ooSQLite package <emphasis role="italic">embedds</emphasis> the SQLite <emphasis role="italic">database engine</emphasis> within the package. <emphasis role="italic">Embedding</emphasis> indicates that the SQLite software code is compiled directly into the ooSQLite library. This in turn means that ooSQLite does not need any external piece to work. There is no need for a SQLite library to be installed on the system. There is no reason why a SQLite library can not be installed on the system, but if there is one, ooSQLite will not access it. </para> +</section> + +<section id="ovvDatabaseEngine"><title>Database Engine</title> <para> <emphasis role="italic">Database engine</emphasis> refers to the code that carries out the actual database function. - For example, MySQL comes with a database engine, but it also comes with components that allow a server to server up + For example, MySQL comes with a database engine, but it also comes with components that allow a server to serve up connections to the database engine, allow a client to contact the server, etc.. These components are not a part of the database engine of MySQL. ooSQLite works by making calls into the SQLite database engine, (which is embedded within ooSQLite.) Within this documentation, a reference to <emphasis role="italic">the database engine</emphasis> means the - SQLite database engine. In places in the documentation the SQLite database engine is stated explictly. In places where - the SQLite part is left off, the SQLite part is implicit. + SQLite database engine. In places in the documentation, <emphasis role="italic">the SQLite </emphasis> database + engine is stated explictly. In places where the SQLite part is left off, the SQLite part is implicit. </para> -<para> - Some common concepts in ooSQLite text text -</para> - -<section id="ovvSomeConcept"><title>SomeConcept</title> -<para> - PROVIDE TEXT -</para> </section> - </section> <!-- End: Common Concepts --> -<section id="sctSomeSection"><title>SomeSection</title> +<section id="sctSQLiteFeatues"><title>SQLite Features</title> <para> - text + SQLite has some characteristics and features that are distinct from other database engines. Many of these features + seem suitable for the types of applications ooRexx programmers want to write. </para> -<para> - IBM announced and released several successive versions of Object Rexx for Windows over the following years. For - instance, Object REXX for Windows V2R1 was announced March 2001. In May 2004, IBM announced its intention to - contribute the source code for Object Rexx to RexxLA, and the ooRexx project was born. It took the best part of a year - to work out the details and for the ooRexx developers to get the first version of ooRexx built and released. ooRexx - 3.0, the first ooRexx release, took place on March 25th 2005. -</para> -<para> - From that point, the ooRexx team began regularly releasing new versions of ooRexx, up through the release of ooRexx - 3.2.0 on November 5, 2007. After the release of 3.2.0, the ooRexx team concentrated on refactoring the interpreter and - on adding a new set of native APIs used to write extensions to the ooRexx interpreter. The new APIs allowed the - passing ooRexx objects to the routines and methods used in extensions. Previously, only strings could be passed to - external libraries. The refactored ooRexx interpreter and the new native APIs were introduced in ooRexx 4.0.0, - released in August 2009. -</para> -<para> - Up until that release in the middle of 2009, ooDialog remained virtually unchanged. The evolution of the Windows - operating system had passed it by. ooDialog was designed for Windows 3.1, or at the latest Windows 95. It still - referred to dialog controls such as the list-view as "new" controls. Despite the fact that the list-view control had - been in use for over a decade. Some controls were considered "advanced" in ooDialog, while in Windows itself they were - considered old news. -</para> -<para> - Much of the design of ooDialog was based on constraints that existed in Windows 3.1 and Windows 95 that no longer - existed in modern operating systems. For instance, the reason for having three separate ooDialog class files, - <computeroutput>OODPLAIN.CLS, OODIALOG.CLS, and OODWIN32.CLS</computeroutput>, and for providing the simpler - <computeroutput>PlainUserDialog</computeroutput> class was to have a smaller package that required less system - resources for ordinary user interfaces like the standard dialogs. That reason is not as valid in modern times as it - was when ooDialog was being developed to run on Windows 3.1. Many of the programming techniques in the ooDialog - implementation were also outdated. The conversion of dialog units to pixels and vice versa in ooDialog is a good - example. While the technique must have worked in very early versions of Windows, it is completely wrong in Windows XP - and later. -</para> -<para> - The release of the new C++ native APIs in ooRexx 4.0.0 allowed much richer extensions to the Rexx interpreter to be - written. Extensions could be implemented that had access to the actual objects instantiated within the - interpreter. During the release of ooRexx 4.0.0, the internal work was started to convert ooDialog to use the C++ - APIs. This work lead to the complete refactoring of the ooDialog code, and the effort to bring ooDialog up to the - level of Windows Vista and Windows 7 got started. New dialog controls were added along with new dialog objects and - methods. However, this work was done in the internal development source tree and was not ready for the 4.0.0, 4.0.1, - and 4.1.0 releases of ooRexx. Although ooDialog in those releases had some improvements and enhancements, they were - minor. -</para> -<para> - ooRexx 4.1.0 was released in December 2010. At that time, the internal work to convert ooDialog to the C++ APIs and - the refactoring of the ooDialog source code was complete, but the refactored ooDialog was not ready for release, - primarily because the documentation was not complete. The ooDialog distributed with ooRexx 4.1.0 was essentially the - same as the ooDialog distributed with ooRexx 4.0.0, with bug fixes and some small enhancements. A small bug fix - version of ooRexx 4.1.1 was released in March 2012. The ooDialog distributed in 4.1.1 is identical to the 4.1.0 - ooDialog. -</para> -<para> - When the work of getting ooRexx 4.1.0 out the door was finished, some observations about ooDialog were made. One was - that previously no real versioning of ooDialog was done. The second was that each of the ooDialogs shipped with ooRexx - 4.0.0, 4.0.1, and 4.1.0 only required an ooRexx 4.0.0 interpreter to work, while the refactored ooDialog in the - internal development source tree required an ooRexx 4.1.0 interpreter. The third observation was that, since ooDialog - is an extension to the Rexx interpreter, there is no reason why it could not be distributed independently of the - ooRexx interpreter. Finally, it had been observed from some comments made in bugs opened up against ooDialog, that - there were a few people who seemed to prefer to remain with an ooDialog that was designed for Windows 95, in essence - an ooDialog unchanged from the ooDialog shipped with ooRexx 3.2.0. -</para> -<para> - This lead to the decision to define a more formal versioning scheme for ooDialog and also to implement a means to - distribute ooDialog independently of the ooRexx distribution. The version string of ooDialog had already been defined - to be the version string of the ooRexx interpreter ooDialog was built under. A second part of the ooDialog version was - to be the ooDialog level. This is similar to the language level of the Rexx interpreter. The initial ooDialog levels - are listed in this table: -</para> -<table id="tblOODialogLevels" frame="all" pgwide='1'> -<title>ooDialog Levels</title> -<tgroup cols="3"> -<colspec align='left' colwidth='1*'> -<colspec align='left' colwidth='1*'> -<colspec align='left' colwidth='6*'> -<thead> -<row> -<entry>Level</entry> -<entry>Required Interpreter</entry> -<entry>Description</entry> -</row> -</thead> -<tbody> -<row> -<entry>3.2.0</entry> -<entry>4.0.0</entry> -<entry>ooDialog implementation using Rexx classic external routines.</entry> -</row> -<row> -<entry>4.1.0</entry> -<entry>4.0.0</entry> -<entry>ooDialog as shipped with ooRexx 4.0.0 with all bug fixes through ooRexx 4.1.1.</entry> -</row> -<row> -<entry>4.2.0</entry> -<entry>4.1.0</entry> -<entry>Refactored ooDialog completely implemented with the C++ native API.</entry> -</row> -</tbody> -</tgroup> -</table> <variablelist> - <varlistentry><term><emphasis role="bold">Level 3.2.0</emphasis></term> + <varlistentry><term><emphasis role="bold">Zero-Configuration:</emphasis></term> <listitem> <para> - The ooDialog code at level 3.2.0 is frozen. Since the implementing code uses the classic external routines and the - code itself is unchanged from the ooDialog shipped with ooRexx 3.2.0, ooDialog programs should behave - exactly as they did under the ooDialog shipped with ooRexx 3.2.0. No fixes, enhancements, or changes will be made to - the code. + SQLite does not need to be "installed" before it is used. There is no "setup" procedure. There is no server process + that needs to be started, stopped, or configured. There is no need for an administrator to create a new database + instance or assign access permissions to users. SQLite uses no configuration files. Nothing needs to be done to tell + the system that SQLite is running. No actions are required to recover after a system crash or power failure. There + is nothing to troubleshoot. </para> <para> - It is available as a separate download from SourceForge using the <emphasis role="italic">Switch ooDialog</emphasis> - technology for users who would like to replace their installed ooDialog with a 3.2.0 level ooDialog. It requires - that the installed ooRexx is 4.0.0 or later. Although the code is frozen, if a user can demonstrate an ooDialog - program behaves differently using a 3.2.0 level ooDialog than it did under an actual ooRexx 3.2.0 installation, a - fix will be considered. + SQLite just works. </para> + <para> + Other more familiar database engines run great once you get them going. But doing the initial installation and + configuration can be intimidatingly complex. + </para> </listitem></varlistentry> - <varlistentry><term><emphasis role="bold">Level 4.1.0</emphasis></term> + <varlistentry><term><emphasis role="bold">Serverless:</emphasis></term> <listitem> <para> - ooDialog at level 4.1.0 is the ooDialog that shipped with ooRexx 4.0.0, plus all bug fixes and changes up through - ooRexx 4.1.1. It is also provided as a separate download on SourceForge and also requires the installed ooRexx be - 4.0.0 or later. This code is frozen, no changes will be ma... [truncated message content] |