⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cursor_8h-source.html

📁 俄罗斯牛人KK的作品,著名的ORDBMS,这里上传最新的3.39版本源代码.希望了解对象关系数据库的同好,请不要错过.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00236         reset();00237     }00238 00242     <span class="keywordtype">void</span> removeAllSelected();00243 <a name="l00247"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a33">00247</a>     <span class="keywordtype">void</span> setSelectionLimit(size_t lim) { limit = lim; }00248     <a name="l00252"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a34">00252</a>     <span class="keywordtype">void</span> unsetSelectionLimit() { limit = dbDefaultSelectionLimit; }00253 <a name="l00260"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a35">00260</a>     <span class="keywordtype">void</span> setPrefetchMode(<span class="keywordtype">bool</span> mode) { prefetch = mode; }00261 00265     <span class="keywordtype">void</span> reset();00266 00271     <span class="keywordtype">bool</span> isLast() <span class="keyword">const</span>; 00272 00277     <span class="keywordtype">bool</span> isFirst() <span class="keyword">const</span>; 00278 00284     <span class="keywordtype">void</span> freeze();00285 00289     <span class="keywordtype">void</span> unfreeze();00290 00298     <span class="keywordtype">bool</span> skip(<span class="keywordtype">int</span> n);00299 00300 00306     <span class="keywordtype">int</span> seek(oid_t oid);00307 <a name="l00311"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a43">00311</a>     <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* getTable() { <span class="keywordflow">return</span> table; }00312 00313 <a name="l00318"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a44">00318</a>     <span class="keywordtype">void</span> setTable(<a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* aTable) { 00319         table = aTable;00320         db = aTable-&gt;<a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn10">db</a>;00321     }00322 <a name="l00327"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a45">00327</a>     <span class="keywordtype">void</span> setRecord(<span class="keywordtype">void</span>* rec) { 00328         record = (byte*)rec;00329     }00330 <a name="l00335"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a46">00335</a>     <span class="keywordtype">void</span>* getRecord() { 00336         <span class="keywordflow">return</span> record;00337     }00338 00343     <span class="keywordtype">bool</span> isInSelection(oid_t oid);00344 00345 <a name="l00350"></a><a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a48">00350</a>     <span class="keywordtype">void</span> fetch() { 00351         assert(!(db-&gt;currIndex[currId] 00352                  &amp; (dbInternalObjectMarker|dbFreeHandleMarker)));00353         table-&gt;columns-&gt;fetchRecordFields(record, 00354                                           (byte*)db-&gt;getRow(currId));00355     }00356 00360     <span class="keywordtype">bool</span> hasNext() <span class="keyword">const</span>;00361     00362   <span class="keyword">protected</span>: 00363     <a class="code" href="classdbDatabase.html">dbDatabase</a>*        db;00364     <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* table;00365     dbCursorType       type;00366     dbCursorType       defaultType;00367     dbSelection        selection;00368     <span class="keywordtype">bool</span>               allRecords;00369     oid_t              firstId;00370     oid_t              lastId;00371     oid_t              currId;00372     byte*              record;00373     size_t             limit;00374 00375     int4*              bitmap; <span class="comment">// bitmap to avoid duplicates</span>00376     size_t             bitmapSize;00377     <span class="keywordtype">bool</span>               eliminateDuplicates;00378     <span class="keywordtype">bool</span>               prefetch;00379     <span class="keywordtype">bool</span>               removed; <span class="comment">// current record was removed</span>00380     <span class="keywordtype">bool</span>               lastRecordWasDeleted; <span class="comment">//last record was deleted</span>00381 00382     size_t             stmtLimitStart;00383     size_t             stmtLimitLen;00384     size_t             nSkipped;00385 00386     <span class="keywordtype">void</span>*              paramBase;00387     00388     <span class="keywordtype">void</span> checkForDuplicates();00389     <span class="keywordtype">void</span> deallocateBitmap();00390 00391     <span class="keywordtype">bool</span> isMarked(oid_t oid) { 00392         <span class="keywordflow">return</span> bitmap != NULL &amp;&amp; (bitmap[oid &gt;&gt; 5] &amp; (1 &lt;&lt; (oid &amp; 31))) != 0;00393     }00394 00395     <span class="keywordtype">void</span> setStatementLimit(<a class="code" href="classdbQuery.html">dbQuery</a> <span class="keyword">const</span>&amp; q) { 00396         stmtLimitStart = q.<a class="code" href="classdbCompiledQuery.html#dbQuerym8">stmtLimitStartPtr</a> != NULL ? (nat4)*q.<a class="code" href="classdbCompiledQuery.html#dbQuerym8">stmtLimitStartPtr</a> : q.<a class="code" href="classdbCompiledQuery.html#dbQuerym6">stmtLimitStart</a>;00397         stmtLimitLen = q.<a class="code" href="classdbCompiledQuery.html#dbQuerym9">stmtLimitLenPtr</a> != NULL ? (nat4)*q.<a class="code" href="classdbCompiledQuery.html#dbQuerym9">stmtLimitLenPtr</a> : q.<a class="code" href="classdbCompiledQuery.html#dbQuerym7">stmtLimitLen</a>;00398     }00399 00400     <span class="keywordtype">void</span> truncateSelection() { 00401         selection.truncate(stmtLimitStart, stmtLimitLen);00402     }00403 00404     <span class="keywordtype">void</span> mark(oid_t oid) { 00405         <span class="keywordflow">if</span> (bitmap != NULL) { 00406             bitmap[oid &gt;&gt; 5] |= 1 &lt;&lt; (oid &amp; 31);00407         }00408     }    00409 00410     <span class="keywordtype">bool</span> add(oid_t oid) { 00411         <span class="keywordflow">if</span> (selection.nRows &lt; limit &amp;&amp; selection.nRows &lt; stmtLimitLen) { 00412             <span class="keywordflow">if</span> (nSkipped &lt; stmtLimitStart) { 00413                 nSkipped += 1;00414                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00415             }00416             <span class="keywordflow">if</span> (eliminateDuplicates) { 00417                 <span class="keywordflow">if</span> (bitmap[oid &gt;&gt; 5] &amp; (1 &lt;&lt; (oid &amp; 31))) { 00418                     <span class="keywordflow">return</span> <span class="keyword">true</span>;00419                 }00420                 bitmap[oid &gt;&gt; 5] |= 1 &lt;&lt; (oid &amp; 31);00421             } 00422             selection.add(oid);00423             <span class="keywordflow">return</span> selection.nRows &lt; limit;00424         } 00425         <span class="keywordflow">return</span> <span class="keyword">false</span>;00426     }00427 00428     <span class="keywordtype">bool</span> gotoNext();00429     <span class="keywordtype">bool</span> gotoPrev(); 00430     <span class="keywordtype">bool</span> gotoFirst();00431     <span class="keywordtype">bool</span> gotoLast();00432     00433     <span class="keywordtype">bool</span> moveNext();00434     <span class="keywordtype">bool</span> movePrev();00435 00436     <span class="keywordtype">void</span> setCurrent(<a class="code" href="classdbAnyReference.html">dbAnyReference</a> <span class="keyword">const</span>&amp; ref);00437 00438     <span class="keywordtype">void</span> adjustReferences(size_t base, size_t size, <span class="keywordtype">long</span> shift) { 00439         <span class="keywordflow">if</span> (currId != 0 &amp;&amp; record != NULL) { 00440             table-&gt;<a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn4">columns</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptora8">adjustReferences</a>(record, base, size, shift);00441         }00442     }00443 00444     dbAnyCursor(<a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>&amp; aTable, dbCursorType aType, byte* rec)00445     : table(&amp;aTable),type(aType),defaultType(aType),00446       allRecords(false),currId(0),record(rec)00447     {00448         db = aTable.<a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn10">db</a>;00449         limit = dbDefaultSelectionLimit;00450         prefetch = rec != NULL;00451         removed = <span class="keyword">false</span>;00452         bitmap = NULL; 00453         bitmapSize = 0;00454         eliminateDuplicates = <span class="keyword">false</span>;00455         paramBase = NULL;00456         stmtLimitLen = dbDefaultSelectionLimit;00457         stmtLimitStart = 0;00458         nSkipped = 0;00459     }00460   <span class="keyword">public</span>:00461     dbAnyCursor() 00462     : table(NULL),type(dbCursorViewOnly),defaultType(dbCursorViewOnly),00463           allRecords(false),currId(0),record(NULL)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -