cursor_8h-source.html

来自「俄罗斯牛人KK的作品,著名的ORDBMS,这里上传最新的3.39版本源代码.希望」· HTML 代码 · 共 467 行 · 第 1/3 页

HTML
467
字号
00464     {00465         limit = dbDefaultSelectionLimit;00466         prefetch = <span class="keyword">false</span>;00467         removed = <span class="keyword">false</span>;00468         bitmap = NULL;00469         bitmapSize = 0;00470         eliminateDuplicates = <span class="keyword">false</span>;00471         db = NULL;00472         paramBase = NULL;00473         stmtLimitLen = dbDefaultSelectionLimit;00474         stmtLimitStart = 0;00475         nSkipped = 0;00476     }00477     ~dbAnyCursor();00478 };00479 00480 00484 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;<a name="l00485"></a><a class="code" href="classdbCursor.html">00485</a> <span class="keyword">class </span><a class="code" href="classdbCursor.html">dbCursor</a> : <span class="keyword">public</span> dbAnyCursor { 00486   <span class="keyword">private</span>:00487     <span class="comment">// Itis not possible to copy cursors</span>00488     <a class="code" href="classdbCursor.html">dbCursor&lt;T&gt;</a> operator = (<a class="code" href="classdbCursor.html">dbCursor&lt;T&gt;</a> <span class="keyword">const</span>&amp; src) { 00489         <span class="keywordflow">return</span> *<span class="keyword">this</span>;00490     } 00491 00492   <span class="keyword">protected</span>:00493     T record;00494     00495   <span class="keyword">public</span>:<a name="l00500"></a><a class="code" href="classdbCursor.html#dbCursora0">00500</a>     <a class="code" href="classdbCursor.html#dbCursora0">dbCursor</a>(dbCursorType type = dbCursorViewOnly) 00501         : dbAnyCursor(T::dbDescriptor, type, (byte*)&amp;record) {}00502 <a name="l00509"></a><a class="code" href="classdbCursor.html#dbCursora1">00509</a>     <a class="code" href="classdbCursor.html#dbCursora0">dbCursor</a>(<a class="code" href="classdbDatabase.html">dbDatabase</a>* aDb, dbCursorType type = dbCursorViewOnly)00510         : dbAnyCursor(T::dbDescriptor, type, (byte*)&amp;record)00511     {00512         db = aDb;00513         <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* theTable = db-&gt;<a class="code" href="classdbDatabase.html#dbSubSqla38">lookupTable</a>(table);00514         <span class="keywordflow">if</span> (theTable != NULL) { 00515             table = theTable;00516         }00517     }00518 <a name="l00523"></a><a class="code" href="classdbCursor.html#dbCursora2">00523</a>     T* <a class="code" href="classdbCursor.html#dbCursora2">get</a>() { 00524         <span class="keywordflow">return</span> currId == 0 ? (T*)NULL : &amp;record; 00525     }00526     <a name="l00531"></a><a class="code" href="classdbCursor.html#dbCursora3">00531</a>     T* <a class="code" href="classdbCursor.html#dbCursora3">next</a>() { 00532         <span class="keywordflow">if</span> (gotoNext()) { 00533             <a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a48">fetch</a>();00534             <span class="keywordflow">return</span> &amp;record;00535         }00536         <span class="keywordflow">return</span> NULL;00537     }00538 <a name="l00543"></a><a class="code" href="classdbCursor.html#dbCursora4">00543</a>     T* <a class="code" href="classdbCursor.html#dbCursora4">prev</a>() { 00544         <span class="keywordflow">if</span> (gotoPrev()) { 00545             <a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a48">fetch</a>();00546             <span class="keywordflow">return</span> &amp;record;00547         }00548         <span class="keywordflow">return</span> NULL;00549     }00550 <a name="l00555"></a><a class="code" href="classdbCursor.html#dbCursora5">00555</a>     T* <a class="code" href="classdbCursor.html#dbCursora5">first</a>() { 00556         <span class="keywordflow">if</span> (gotoFirst()) {00557             <a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a48">fetch</a>();00558             <span class="keywordflow">return</span> &amp;record;00559         }00560         <span class="keywordflow">return</span> NULL;00561     }00562 <a name="l00567"></a><a class="code" href="classdbCursor.html#dbCursora6">00567</a>     T* <a class="code" href="classdbCursor.html#dbCursora6">last</a>() { 00568         <span class="keywordflow">if</span> (gotoLast()) {00569             <a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a48">fetch</a>();00570             <span class="keywordflow">return</span> &amp;record;00571         }00572         <span class="keywordflow">return</span> NULL;00573     }    00574     <a name="l00580"></a><a class="code" href="classdbCursor.html#dbCursora7">00580</a>     <span class="keywordtype">int</span> <a class="code" href="classdbCursor.html#dbCursora7">seek</a>(<a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <span class="keyword">const</span>&amp; ref) { 00581         <span class="keywordflow">return</span> <a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a42">dbAnyCursor::seek</a>(ref.<a class="code" href="classdbAnyReference.html#dbReferencea11">getOid</a>());00582     }00583 <a name="l00588"></a><a class="code" href="classdbCursor.html#dbCursora8">00588</a>     T* <a class="code" href="classdbCursor.html#dbCursora8">operator -&gt;</a>() { 00589         assert(currId != 0);00590         <span class="keywordflow">return</span> &amp;record;00591     }00592 <a name="l00598"></a><a class="code" href="classdbCursor.html#dbCursora9">00598</a>     T* <a class="code" href="classdbCursor.html#dbCursora9">at</a>(<a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <span class="keyword">const</span>&amp; ref) { 00599         setCurrent(ref);00600         <span class="keywordflow">return</span> &amp;record;00601     }00602     <a name="l00607"></a><a class="code" href="classdbCursor.html#dbCursora10">00607</a>     <span class="keywordtype">void</span> <a class="code" href="classdbCursor.html#dbCursora10">toArray</a>(<a class="code" href="classdbArray.html">dbArray</a>&lt; <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> &gt;&amp; arr)<span class="keyword"> const </span>{ 00608         arr.resize(selection.nRows);00609         <a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a21">toArrayOfOid</a>((oid_t*)arr.base());00610     }00611 <a name="l00616"></a><a class="code" href="classdbCursor.html#dbCursora11">00616</a>     <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <a class="code" href="classdbCursor.html#dbCursora11">currentId</a>()<span class="keyword"> const </span>{ 00617         <span class="keywordflow">return</span> <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a>(currId);00618     }00619 <a name="l00636"></a><a class="code" href="classdbCursor.html#dbCursora12">00636</a>     T* <a class="code" href="classdbCursor.html#dbCursora12">nextAvailable</a>() { 00637         <span class="keywordflow">if</span> (!removed) { 00638             <span class="keywordflow">return</span> <a class="code" href="classdbCursor.html#dbCursora3">next</a>(); 00639         } <span class="keywordflow">else</span> {00640             removed = <span class="keyword">false</span>;00641             <span class="keywordflow">return</span> lastRecordWasDeleted ? NULL : <a class="code" href="classdbCursor.html#dbCursora2">get</a>();00642         }00643     }00644 <a name="l00662"></a><a class="code" href="classdbCursor.html#dbCursora13">00662</a>     T* <a class="code" href="classdbCursor.html#dbCursora13">prevAvailable</a>() { 00663         <span class="keywordflow">if</span> (!removed) { 00664             <span class="keywordflow">return</span> <a class="code" href="classdbCursor.html#dbCursora4">prev</a>(); 00665         } <span class="keywordflow">else</span> {00666             removed = <span class="keyword">false</span>;00667             <span class="keywordflow">return</span> lastRecordWasDeleted ? <a class="code" href="classdbCursor.html#dbCursora2">get</a>() : <a class="code" href="classdbCursor.html#dbCursora4">prev</a>();00668         }00669     }00670 <a name="l00675"></a><a class="code" href="classdbCursor.html#dbCursora14">00675</a>     <span class="keywordtype">bool</span> <a class="code" href="classdbCursor.html#dbCursora14">isInSelection</a>(<a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a>&amp; ref) {00676         <span class="keywordflow">return</span> <a class="code" href="classdbAnyCursor.html#dbCursor_3_01dbTimeSeriesBlock_3_01T_01_4_01_4a47">dbAnyCursor::isInSelection</a>(ref.<a class="code" href="classdbAnyReference.html#dbReferencea11">getOid</a>());00677     }00678 };00679 00680 <span class="keyword">class </span>dbParallelQueryContext { 00681   <span class="keyword">public</span>:00682     <a class="code" href="classdbDatabase.html">dbDatabase</a>* <span class="keyword">const</span>      db;00683     <a class="code" href="classdbCompiledQuery.html">dbCompiledQuery</a>* <span class="keyword">const</span> query;00684     oid_t                  firstRow;00685     <a class="code" href="classdbTable.html">dbTable</a>*               table;00686     dbAnyCursor*           cursor;00687     dbSelection            selection[dbMaxParallelSearchThreads];00688 00689     <span class="keywordtype">void</span> search(<span class="keywordtype">int</span> i); 00690 00691     dbParallelQueryContext(<a class="code" href="classdbDatabase.html">dbDatabase</a>* aDb, <a class="code" href="classdbTable.html">dbTable</a>* aTable, 00692                            <a class="code" href="classdbCompiledQuery.html">dbCompiledQuery</a>* aQuery, dbAnyCursor* aCursor)00693       : db(aDb), query(aQuery), firstRow(aTable-&gt;firstRow), table(aTable), cursor(aCursor) {}00694 };00695 00696 00697 <span class="keyword">extern</span> <span class="keywordtype">char</span>* strupper(<span class="keywordtype">char</span>* s);00698 00699 <span class="keyword">extern</span> <span class="keywordtype">char</span>* strlower(<span class="keywordtype">char</span>* s);00700 00701 END_FASTDB_NAMESPACE00702 00703 <span class="preprocessor">#endif</span></pre></div><hr><address style="align: right;"><small>Generated on Mon Oct 23 13:23:58 2006 for FastDB by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

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