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

📄 query_8h-source.html

📁 最新版本!fastdb是高效的内存数据库系统
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00651 <span class="keyword">inline</span> dbQuery&amp; operator,(dbQuery&amp; query, 
00652                              <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) 
00653 { 
00654     <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarArrayOfRefPtr, &amp;value, 
00655                         &amp;T::dbDescriptor);
00656 }
00657 
00658 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;
00659 <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) { 
00660     <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarReference, &amp;value, &amp;T::dbDescriptor);
00661 }
00662 
00663 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;
00664 <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) { 
00665     <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarArrayOfRef, &amp;value, 
00666                         &amp;T::dbDescriptor);
00667 }
00668 
00669 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;
00670 <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) { 
00671     <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarArrayOfRefPtr, &amp;value, &amp;T::dbDescriptor);
00672 }
00673 <span class="preprocessor">#endif</span>
00674 <span class="preprocessor"></span>
00675 <span class="preprocessor">#define USER_FUNC(f) static dbUserFunction f##_descriptor(&amp;f, (char*)#f)</span>
00676 <span class="preprocessor"></span>
00677 <span class="keyword">struct </span>dbInheritedAttribute;
00678 <span class="keyword">union  </span>dbSynthesizedAttribute;
00679 
<a name="l00684"></a><a class="code" href="classdbUserFunctionArgument.html">00684</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY  dbUserFunctionArgument { 
00685   <span class="keyword">public</span>:
00686     <span class="keyword">enum</span> dbArgumentType { 
00687         atInteger, 
00688         atBoolean, 
00689         atString, 
00690         atReal, 
00691         atReference, 
00692         atRawBinary
00693     };  
00694     dbArgumentType type; 
00695     <span class="keyword">union </span>{
00696         real8       realValue;
00697         db_int8     intValue;
00698         <span class="keywordtype">bool</span>        boolValue;
00699         <span class="keywordtype">char</span> <span class="keyword">const</span>* strValue;
00700         oid_t       oidValue;
00701         <span class="keywordtype">void</span>*       rawValue;
00702     } u;
00703 
00704   <span class="keyword">private</span>:
00705     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classdbDatabase.html">dbDatabase</a>;
00706     dbUserFunctionArgument(dbExprNode*             expr, 
00707                            dbInheritedAttribute&amp;   iattr, 
00708                            dbSynthesizedAttribute&amp; sattr, 
00709                            <span class="keywordtype">int</span>                     i);
00710 };
00711 
<a name="l00720"></a><a class="code" href="classdbUserFunction.html">00720</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY dbUserFunction { 
00721     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classdbDatabase.html">dbDatabase</a>;
00722     <span class="keyword">friend</span> <span class="keyword">class </span>dbCompiler;
00723 
00724     <span class="keywordtype">void</span>* fptr;
00725     <span class="keywordtype">char</span>* fname;
00726     
00727     dbUserFunction* next;
00728     <span class="keyword">static</span> dbUserFunction* list;
00729 
00730     <span class="keyword">enum</span> funcType {
00731         fInt2Bool,
00732         fReal2Bool,
00733         fStr2Bool,
00734         fInt2Int,
00735         fReal2Int,
00736         fStr2Int,
00737         fInt2Real,
00738         fReal2Real,
00739         fStr2Real,
00740         fInt2Str,
00741         fReal2Str,
00742         fStr2Str, 
00743         fArg2Bool, 
00744         fArg2Int, 
00745         fArg2Real, 
00746         fArg2Str, 
00747         fArgArg2Bool, 
00748         fArgArg2Int, 
00749         fArgArg2Real, 
00750         fArgArg2Str, 
00751         fArgArgArg2Bool, 
00752         fArgArgArg2Int, 
00753         fArgArgArg2Real, 
00754         fArgArgArg2Str
00755     };
00756     <span class="keywordtype">int</span> type;
00757 
00758     <span class="keywordtype">void</span> bind(<span class="keywordtype">char</span>* name, <span class="keywordtype">void</span>* f, funcType ftype);
00759 
00760   <span class="keyword">public</span>:
00761 
00762     <span class="keyword">static</span> dbUserFunction* find(<span class="keywordtype">char</span> <span class="keyword">const</span>* name) { 
00763         <span class="keywordflow">for</span> (dbUserFunction* func = list; func != NULL; func = func-&gt;<a class="code" href="classdbUserFunction.html#dbUserFunctiono2">next</a>) { 
00764             <span class="keywordflow">if</span> (name == func-&gt;<a class="code" href="classdbUserFunction.html#dbUserFunctiono1">fname</a>) { 
00765                 <span class="keywordflow">return</span> func;
00766             }
00767         }
00768         <span class="keywordflow">return</span> NULL;
00769     }
00770     
00771     <span class="keywordtype">int</span> getParameterType();
00772 
00773     <span class="keywordtype">int</span> getNumberOfParameters();
00774 
00775     dbUserFunction(<span class="keywordtype">bool</span> (*f)(db_int8), <span class="keywordtype">char</span>* name) { 
00776         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Bool); 
00777     }
00778     dbUserFunction(<span class="keywordtype">bool</span> (*f)(real8), <span class="keywordtype">char</span>* name) { 
00779         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Bool); 
00780     }
00781     dbUserFunction(<span class="keywordtype">bool</span> (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 
00782         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Bool); 
00783     }
00784     dbUserFunction(db_int8 (*f)(db_int8), <span class="keywordtype">char</span>* name) { 
00785         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Int); 
00786     }
00787     dbUserFunction(db_int8 (*f)(real8), <span class="keywordtype">char</span>* name) { 
00788         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Int); 
00789     }
00790     dbUserFunction(db_int8 (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 
00791         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Int); 
00792     }
00793     dbUserFunction(real8 (*f)(db_int8), <span class="keywordtype">char</span>* name) { 
00794         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Real); 
00795     }
00796     dbUserFunction(real8 (*f)(real8), <span class="keywordtype">char</span>* name) { 
00797         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Real); 
00798     }
00799     dbUserFunction(real8 (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 
00800         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Real); 
00801     }
00802     dbUserFunction(<span class="keywordtype">char</span>* (*f)(db_int8), <span class="keywordtype">char</span>* name) { 
00803         bind(name, (<span class="keywordtype">void</span>*)f, fInt2Str); 
00804     }
00805     dbUserFunction(<span class="keywordtype">char</span>* (*f)(real8), <span class="keywordtype">char</span>* name) { 
00806         bind(name, (<span class="keywordtype">void</span>*)f, fReal2Str); 
00807     }
00808     dbUserFunction(<span class="keywordtype">char</span>* (*f)(<span class="keywordtype">char</span> <span class="keyword">const</span>*), <span class="keywordtype">char</span>* name) { 
00809         bind(name, (<span class="keywordtype">void</span>*)f, fStr2Str); 
00810     }
00811 
00812 
00813     dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00814         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Bool); 
00815     }
00816     dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00817         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Str); 
00818     }
00819     dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00820         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Int); 
00821     }
00822     dbUserFunction(real8 (*f)(dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00823         bind(name, (<span class="keywordtype">void</span>*)f, fArg2Real); 
00824     }
00825 
00826     dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00827         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Bool); 
00828     }
00829     dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00830         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Str); 
00831     }
00832     dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00833         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Int); 
00834     }
00835     dbUserFunction(real8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00836         bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Real); 
00837     }
00838 
00839 
00840     dbUserFunction(<span class="keywordtype">bool</span> (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00841         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Bool); 
00842     }
00843     dbUserFunction(<span class="keywordtype">char</span>* (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00844         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Str); 
00845     }
00846     dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00847         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Int); 
00848     }
00849     dbUserFunction(real8 (*f)(dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;, dbUserFunctionArgument&amp;), <span class="keywordtype">char</span>* name) { 
00850         bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Real); 
00851     }
00852 
00853     ~dbUserFunction();
00854 };
00855 
00856 END_FASTDB_NAMESPACE
00857 
00858 <span class="preprocessor">#endif</span>
00859 <span class="preprocessor"></span>
00860 
00861 
</pre></div><hr><address style="align: right;"><small>Generated on Thu Feb 14 12:42:30 2008 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 + -