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><<span class="keyword">class</span> T><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<T></a> operator = (<a class="code" href="classdbCursor.html">dbCursor<T></a> <span class="keyword">const</span>& 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*)&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*)&record)00511 {00512 db = aDb;00513 <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* theTable = db-><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 : &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> &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> &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> &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> &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<T></a> <span class="keyword">const</span>& 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 -></a>() { 00589 assert(currId != 0);00590 <span class="keywordflow">return</span> &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<T></a> <span class="keyword">const</span>& ref) { 00599 setCurrent(ref);00600 <span class="keywordflow">return</span> &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>< <a class="code" href="classdbReference.html">dbReference<T></a> >& 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<T></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<T></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<T></a>& 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->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 + -
显示快捷键?