📄 query_8h-source.html
字号:
00636 00637 <span class="keyword">template</span><<span class="keyword">class</span> T>00638 <span class="keyword">inline</span> dbQuery& add(dbQuery& query, <a class="code" href="classdbReference.html">dbReference<T></a> <span class="keyword">const</span>& value) { 00639 <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarReference, &value, &T::dbDescriptor);00640 }00641 00642 <span class="keyword">template</span><<span class="keyword">class</span> T>00643 <span class="keyword">inline</span> dbQuery& add(dbQuery& query, <a class="code" href="classdbArray.html">dbArray</a>< <a class="code" href="classdbReference.html">dbReference<T></a> > <span class="keyword">const</span>& value) { 00644 <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarArrayOfRef, &value, 00645 &T::dbDescriptor);00646 }00647 00648 <span class="keyword">template</span><<span class="keyword">class</span> T>00649 <span class="keyword">inline</span> dbQuery& add(dbQuery& query, <a class="code" href="classdbArray.html">dbArray</a>< <a class="code" href="classdbReference.html">dbReference<T></a> ><span class="keyword">const</span>* <span class="keyword">const</span>& value) { 00650 <span class="keywordflow">return</span> query.<a class="code" href="classdbQuery.html#dbQuerya2">append</a>(dbQueryElement::qVarArrayOfRefPtr, &value, &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(&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& iattr, 00687 dbSynthesizedAttribute& 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-><a class="code" href="classdbUserFunction.html#dbUserFunctiono2">next</a>) { 00743 <span class="keywordflow">if</span> (name == func-><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&), <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&), <span class="keywordtype">char</span>* name) { 00796 bind(name, (<span class="keywordtype">void</span>*)f, fArg2Str); 00797 }00798 dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00799 bind(name, (<span class="keywordtype">void</span>*)f, fArg2Int); 00800 }00801 dbUserFunction(real8 (*f)(dbUserFunctionArgument&), <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&, dbUserFunctionArgument&), <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&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00809 bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Str); 00810 }00811 dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00812 bind(name, (<span class="keywordtype">void</span>*)f, fArgArg2Int); 00813 }00814 dbUserFunction(real8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&), <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&, dbUserFunctionArgument&, dbUserFunctionArgument&), <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&, dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00823 bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Str); 00824 }00825 dbUserFunction(db_int8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&, dbUserFunctionArgument&), <span class="keywordtype">char</span>* name) { 00826 bind(name, (<span class="keywordtype">void</span>*)f, fArgArgArg2Int); 00827 }00828 dbUserFunction(real8 (*f)(dbUserFunctionArgument&, dbUserFunctionArgument&, dbUserFunctionArgument&), <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 + -