📄 classdbdatabase.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>FastDB: dbDatabase class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.5 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div><h1>dbDatabase Class Reference</h1><code>#include <<a class="el" href="database_8h-source.html">database.h</a>></code><p><a href="classdbDatabase-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlw0" doxytag="dbDatabase::dbErrorHandler" ></a>typedef void(* </td><td class="memItemRight" valign=bottom><b>dbErrorHandler</b> )(int error, char const *msg, int msgarg)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><b>DetachFlags</b> { <b>COMMIT</b> = 1, <b>DESTROY_CONTEXT</b> = 2 }</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><b>dbErrorClass</b> { <br> <b>NoError</b>, <b>QueryError</b>, <b>ArithmeticError</b>, <b>IndexOutOfRangeError</b>, <br> <b>DatabaseOpenError</b>, <b>FileError</b>, <b>OutOfMemoryError</b>, <b>Deadlock</b>, <br> <b>NullReferenceError</b>, <b>LockRevoked</b>, <b>FileLimitExeeded</b>, <b>InconsistentInverseReference</b>, <br> <b>DatabaseReadOnly</b><br> }</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><b>dbAccessType</b> { <b>dbReadOnly</b> = 0, <b>dbAllAccess</b> = 1, <b>dbConcurrentRead</b> = 2, <b>dbConcurrentUpdate</b> = 3 }</td></tr><tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla6">open</a> (char const *databaseName, char const *fileName=NULL, time_t waitLockTimeoutMsec=INFINITE, time_t commitDelaySec=0)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla7">close</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla8">commit</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla9">precommit</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla10">rollback</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla11">scheduleBackup</a> (char const *fileName, time_t periodSec)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla12">attach</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla13">detach</a> (int flags=COMMIT|DESTROY_CONTEXT)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla14">lock</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla15">backup</a> (char const *file, bool compactify)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla16">assign</a> (<a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> &desc)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla17">setConcurrency</a> (unsigned nThreads)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>long </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla18">getAllocatedSize</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>long </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla19">getDatabaseSize</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla20">getNumberOfReaders</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla21">getNumberOfWriters</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla22">getNumberOfBlockedReaders</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla23">getNumberOfBlockedWriters</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla24">getNumberOfUsers</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla25">allowColumnsDeletion</a> (bool enabled=true)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>dbErrorHandler </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla26">setErrorHandler</a> (dbErrorHandler newHandler)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbDatabasea21">handleError</a> (dbErrorClass error, char const *msg=NULL, int arg=0)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla27">insertRecord</a> (<a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> *table, <a class="el" href="classdbAnyReference.html">dbAnyReference</a> *ref, void const *record)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla28">isOpen</a> () const </td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla29">getVersion</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla30">setFileSizeLimit</a> (size_t limit)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> <a class="el" href="classdbReference.html">dbReference</a>< T > </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla31">insert</a> (T const &record)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqla32">lookupTable</a> (<a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> *desc)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbDatabasea28">dbDatabase</a> (dbAccessType type=dbAllAccess, size_t dbInitSize=dbDefaultInitDatabaseSize, size_t dbExtensionQuantum=dbDefaultExtensionQuantum, size_t dbInitIndexSize=dbDefaultInitIndexSize, int nThreads=1)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbDatabasea29">~dbDatabase</a> ()</td></tr><tr><td colspan=2><br><h2>Public Attributes</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlo0" doxytag="dbDatabase::accessType" ></a>const dbAccessType </td><td class="memItemRight" valign=bottom><b>accessType</b></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlo1" doxytag="dbDatabase::initSize" ></a>const size_t </td><td class="memItemRight" valign=bottom><b>initSize</b></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlo2" doxytag="dbDatabase::extensionQuantum" ></a>const size_t </td><td class="memItemRight" valign=bottom><b>extensionQuantum</b></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlo3" doxytag="dbDatabase::initIndexSize" ></a>const size_t </td><td class="memItemRight" valign=bottom><b>initIndexSize</b></td></tr><tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqls0" doxytag="dbDatabase::dbParallelScanThreshold" ></a>unsigned </td><td class="memItemRight" valign=bottom><b>dbParallelScanThreshold</b></td></tr><tr><td colspan=2><br><h2>Protected Types</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlx3">dbLockType</a> { <b>dbSharedLock</b>, <b>dbExclusiveLock</b>, <b>dbCommitLock</b> }</td></tr><tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlb1" doxytag="dbDatabase::delayedCommit" ></a>void </td><td class="memItemRight" valign=bottom><b>delayedCommit</b> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlb2" doxytag="dbDatabase::backupScheduler" ></a>void </td><td class="memItemRight" valign=bottom><b>backupScheduler</b> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb0">commit</a> (dbDatabaseThreadContext *ctx)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb3">restoreTablesConsistency</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classdbRecord.html">dbRecord</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb4">getRow</a> (oid_t oid)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classdbRecord.html">dbRecord</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb5">putRow</a> (oid_t oid, size_t newSize)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classdbRecord.html">dbRecord</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb6">putRow</a> (oid_t oid)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>byte * </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb7">get</a> (oid_t oid)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>byte * </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb8">put</a> (oid_t oid)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb9">isIndexApplicable</a> (<a class="el" href="classdbAnyCursor.html">dbAnyCursor</a> *cursor, dbExprNode *expr, dbExprNode *andExpr, <a class="el" href="classdbFieldDescriptor.html">dbFieldDescriptor</a> *&indexedField)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb10">isIndexApplicable</a> (<a class="el" href="classdbAnyCursor.html">dbAnyCursor</a> *cursor, dbExprNode *expr, dbExprNode *andExpr)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb11">followInverseReference</a> (dbExprNode *expr, dbExprNode *andExpr, <a class="el" href="classdbAnyCursor.html">dbAnyCursor</a> *cursor, oid_t iref)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb12">existsInverseReference</a> (dbExprNode *expr, int nExistsClauses)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb13">evaluate</a> (dbExprNode *expr, oid_t oid, <a class="el" href="classdbTable.html">dbTable</a> *table, <a class="el" href="classdbAnyCursor.html">dbAnyCursor</a> *cursor)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb14">select</a> (<a class="el" href="classdbAnyCursor.html">dbAnyCursor</a> *cursor)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb15">select</a> (<a class="el" href="classdbAnyCursor.html">dbAnyCursor</a> *cursor, <a class="el" href="classdbQuery.html">dbQuery</a> &query)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb16">traverse</a> (<a class="el" href="classdbAnyCursor.html">dbAnyCursor</a> *cursor, <a class="el" href="classdbQuery.html">dbQuery</a> &query)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb17">update</a> (oid_t oid, <a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> *table, void const *record)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb18">remove</a> (<a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> *table, oid_t oid)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>offs_t </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb19">allocate</a> (size_t size, oid_t oid=0)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb20">deallocate</a> (offs_t pos, size_t size)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb21">extend</a> (offs_t size)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb22">cloneBitmap</a> (offs_t pos, size_t size)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>oid_t </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb23">allocateId</a> (int n=1)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb24">freeId</a> (oid_t oid, int n=1)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb25">updateCursors</a> (oid_t oid, bool removed=false)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbDatabaseb26">recovery</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb26">checkVersion</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>oid_t </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb27">allocateObject</a> (dbInternalObject marker)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>oid_t </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb28">allocateRow</a> (oid_t tableId, size_t size)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb29">allocateRow</a> (oid_t tableId, oid_t oid, size_t size)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb30">freeRow</a> (oid_t tableId, oid_t oid)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb31">freeObject</a> (oid_t oid)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="dbSubSqlb32" doxytag="dbDatabase::beginTransaction" ></a>bool </td><td class="memItemRight" valign=bottom><b>beginTransaction</b> (<a class="el" href="classdbDatabase.html#dbSubSqlx3">dbLockType</a>)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb33">endTransaction</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb34">endTransaction</a> (dbDatabaseThreadContext *ctx)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb35">initializeMetaTable</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb36">loadScheme</a> (bool alter)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb37">completeDescriptorsInitialization</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb38">reformatTable</a> (oid_t tableId, <a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> *desc)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb39">addIndices</a> (bool alter, <a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> *desc)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>oid_t </td><td class="memItemRight" valign=bottom><a class="el" href="classdbDatabase.html#dbSubSqlb40">addNewTable</a> (<a class="el" href="classdbTableDescriptor.html">dbTableDescriptor</a> *desc)</td></tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -