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

📄 query_8h-source.html

📁 俄罗斯牛人KK的作品,著名的ORDBMS,这里上传最新的3.39版本源代码.希望了解对象关系数据库的同好,请不要错过.
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00636 00637 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;00638 <span class="keyword">inline</span> dbQuery&amp; add(dbQuery&amp; query, <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <span class="keyword">const</span>&amp; value) { 00639     <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarReference, &amp;value, &amp;T::dbDescriptor);00640 }00641 00642 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;00643 <span class="keyword">inline</span> dbQuery&amp; add(dbQuery&amp; query, <a class="code" href="classdbArray.html">dbArray</a>&lt; <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> &gt; <span class="keyword">const</span>&amp; value) { 00644     <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarArrayOfRef, &amp;value, 00645                         &amp;T::dbDescriptor);00646 }00647 00648 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;00649 <span class="keyword">inline</span> dbQuery&amp; add(dbQuery&amp; query, <a class="code" href="classdbArray.html">dbArray</a>&lt; <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> &gt;<span class="keyword">const</span>* <span class="keyword">const</span>&amp; value) { 00650     <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarArrayOfRefPtr, &amp;value, &amp;T::dbDescriptor);00651 }00652 <span class="preprocessor">#endif</span>00653 <span class="preprocessor"></span>00654 <span class="preprocessor">#define USER_FUNC(f) static dbUserFunction f##_descriptor(&amp;f, (char*)#f)</span>00655 <span class="preprocessor"></span>00656 <span class="keyword">struct </span>dbInheritedAttribute;00657 <span class="keyword">union  </span>dbSynthesizedAttribute;00658 <a name="l00663"></a><a class="code" href="classdbUserFunctionArgument.html">00663</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY  dbUserFunctionArgument { 00664   <span class="keyword">public</span>:00665     <span class="keyword">enum</span> dbArgumentType { 00666         atInteger, 00667         atBoolean, 00668         atString, 00669         atReal, 00670         atReference, 00671         atRawBinary00672     };  00673     dbArgumentType type; 00674     <span class="keyword">union </span>{00675         real8       realValue;00676         db_int8     intValue;00677         <span class="keywordtype">bool</span>        boolValue;00678         <span class="keywordtype">char</span> <span class="keyword">const</span>* strValue;00679         oid_t       oidValue;00680         <span class="keywordtype">void</span>*       rawValue;00681     } u;00682 00683   <span class="keyword">private</span>:00684     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classdbDatabase.html">dbDatabase</a>;00685     dbUserFunctionArgument(dbExprNode*             expr, 00686                            dbInheritedAttribute&amp;   iattr, 00687                            dbSynthesizedAttribute&amp; sattr, 00688                            <span class="keywordtype">int</span>                     i);00689 };00690 <a name="l00699"></a><a class="code" href="classdbUserFunction.html">00699</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY dbUserFunction { 00700     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classdbDatabase.html">dbDatabase</a>;00701     <span class="keyword">friend</span> <span class="keyword">class </span>dbCompiler;00702 00703     <span class="keywordtype">void</span>* fptr;00704     <span class="keywordtype">char</span>* fname;00705     00706     dbUserFunction* next;00707     <span class="keyword">static</span> dbUserFunction* list;00708 00709     <span class="keyword">enum</span> funcType {00710         fInt2Bool,00711         fReal2Bool,00712         fStr2Bool,00713         fInt2Int,00714         fReal2Int,00715         fStr2Int,00716         fInt2Real,00717         fReal2Real,00718         fStr2Real,00719         fInt2Str,00720         fReal2Str,00721         fStr2Str, 00722         fArg2Bool, 00723         fArg2Int, 00724         fArg2Real, 00725         fArg2Str, 00726         fArgArg2Bool, 00727         fArgArg2Int, 00728         fArgArg2Real, 00729         fArgArg2Str, 00730         fArgArgArg2Bool, 00731         fArgArgArg2Int, 00732         fArgArgArg2Real, 00733         fArgArgArg2Str00734     };00735     <span class="keywordtype">int</span> type;00736 00737     <span class="keywordtype">void</span> bind(<span class="keywordtype">char</span>* name, <span class="keywordtype">void</span>* f, funcType ftype);00738 00739   <span class="keyword">public</span>:00740 00741     <span class="keyword">static</span> dbUserFunction* find(<span class="keywordtype">char</span> <span class="keyword">const</span>* name) { 00742         <span class="keywordflow">for</span> (dbUserFunction* func = list; func != NULL; func = func-&gt;<a class="code" href="classdbUserFunction.html#dbUserFunctiono2">next</a>) { 00743             <span class="keywordflow">if</span> (name == func-&gt;<a class="code" href="classdbUserFunction.html#dbUserFunctiono1">fname</a>) { 00744                 <span class="keywordflow">return</span> func;00745             }00746         }00747         <span class="keywordflow">return</span> NULL;00748     }00749     00750     <span class="keywordtype">int</span> getParameterType();00751 00752     <span class="keywordtype">int</span> getNumberOfParameters();00753 00754     dbUserFunction(<span class="keywordtype">bool</span> (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00755         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Bool); 00756     }00757     dbUserFunction(<span class="keywordtype">bool</span> (*f)(real8), <span class="keywordtype">char</span>* name) { 00758         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Bool); 00759     }00760     dbUserFunction(<span class="keywordtype">bool</span> (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00761         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Bool); 00762     }00763     dbUserFunction(db_int8 (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00764         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Int); 00765     }00766     dbUserFunction(db_int8 (*f)(real8), <span class="keywordtype">char</span>* name) { 00767         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Int); 00768     }00769     dbUserFunction(db_int8 (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00770         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Int); 00771     }00772     dbUserFunction(real8 (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00773         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Real); 00774     }00775     dbUserFunction(real8 (*f)(real8), <span class="keywordtype">char</span>* name) { 00776         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Real); 00777     }00778     dbUserFunction(real8 (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00779         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Real); 00780     }00781     dbUserFunction(<span class="keywordtype">char</span>* (*f)(db_int8), <span class="keywordtype">char</span>* name) { 00782         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Str); 00783     }00784     dbUserFunction(<span class="keywordtype">char</span>* (*f)(real8), <span class="keywordtype">char</span>* name) { 00785         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Str); 00786     }00787     dbUserFunction(<span class="keywordtype">char</span>* (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 00788         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Str); 00789     }00790 00791 00792     dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00793         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Bool); 00794     }00795     dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00796         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Str); 00797     }00798     dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00799         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Int); 00800     }00801     dbUserFunction(real8 (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00802         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Real); 00803     }00804 00805     dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00806         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Bool); 00807     }00808     dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00809         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Str); 00810     }00811     dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00812         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Int); 00813     }00814     dbUserFunction(real8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00815         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Real); 00816     }00817 00818 00819     dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00820         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Bool); 00821     }00822     dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00823         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Str); 00824     }00825     dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00826         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Int); 00827     }00828     dbUserFunction(real8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 00829         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Real); 00830     }00831 };00832 00833 END_FASTDB_NAMESPACE00834 00835 <span class="preprocessor">#endif</span>00836 <span class="preprocessor"></span>00837 00838 </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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -