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

📄 subsql_8h-source.html

📁 FastDb是高效的内存数据库系统
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>FastDB: subsql.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.5 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div><h1>subsql.h</h1><div class="fragment"><pre>00001 <span class="comment">//-&lt; SUBSQL.H &gt;------------------------------------------------------*--------*</span>00002 <span class="comment">// FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *</span>00003 <span class="comment">// (Main Memory Database Management System)                          *   /\|  *</span>00004 <span class="comment">//                                                                   *  /  \  *</span>00005 <span class="comment">//                          Created:     20-Nov-98    K.A. Knizhnik  * / [] \ *</span>00006 <span class="comment">//                          Last update: 10-Dec-98    K.A. Knizhnik  * GARRET *</span>00007 <span class="comment">//-------------------------------------------------------------------*--------*</span>00008 <span class="comment">// Interactive data manipulation language (subset of SQL)</span>00009 <span class="comment">//-------------------------------------------------------------------*--------*</span>00010 00011 <span class="preprocessor">#ifndef __SUBSQL_H__</span>00012 <span class="preprocessor"></span><span class="preprocessor">#define __SUBSQL_H__</span>00013 <span class="preprocessor"></span>00014 <span class="keyword">enum</span> SubSqlTokens { 00015     tkn_alter = tkn_last_token,00016     tkn_array,00017     tkn_autoincrement,00018     tkn_autocommit,00019     tkn_backup,00020     tkn_bool,00021     tkn_commit,00022     tkn_compactify,00023     tkn_count,00024     tkn_create,00025     tkn_delete,00026     tkn_describe,00027     tkn_drop,00028     tkn_exit,00029     tkn_export,00030     tkn_hash,00031     tkn_help,00032     tkn_http,00033     tkn_import,00034     tkn_index,00035     tkn_int1,00036     tkn_int2,00037     tkn_int4,00038     tkn_int8,00039     tkn_inverse,00040     tkn_of,00041     tkn_off,00042     tkn_on,00043     tkn_open,00044     tkn_real4, 00045     tkn_real8, 00046     tkn_reference,00047     tkn_rollback,00048     tkn_server,00049     tkn_set,00050     tkn_stop,00051     tkn_semi,00052     tkn_show,00053     tkn_to, 00054     tkn_update,00055     tkn_values,00056     tkn_version00057 };00058         00059     00060 00061 <span class="keyword">class </span>dbList { 00062   <span class="keyword">public</span>:00063     <span class="keyword">enum</span> NodeType { 00064         nInteger,00065         nBool,00066         nReal,00067         nString,00068         nTuple,00069         nAutoinc,00070         nIdentifier00071     };00072 00073     dbList* next;00074     <span class="keywordtype">int</span>     type;00075     <span class="keyword">union </span>{ 00076         <span class="keywordtype">bool</span>  bval;00077         db_int8  ival;00078         real8 fval;00079         <span class="keywordtype">char</span>* sval;00080         <span class="keyword">struct </span>{ 00081             <span class="keywordtype">int</span>     nComponents;00082             dbList* components;00083         } aggregate;00084     };00085 00086     ~dbList() { 00087         <span class="keywordflow">if</span> (type == nTuple) {00088             <span class="keyword">delete</span> aggregate.components;00089         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == nString || type == nIdentifier) {00090             <span class="keyword">delete</span>[] sval;00091         }00092     }00093 00094     dbList(<span class="keywordtype">int</span> type) { 00095         this-&gt;type = type;00096         next = NULL; 00097     }00098 };00099 00100 00101 <span class="keyword">struct </span>tableField { 00102     <span class="keywordtype">char</span>* name;00103     <span class="keywordtype">char</span>* refTableName;00104     <span class="keywordtype">char</span>* inverseRefName;00105     <span class="keywordtype">int</span>   type;00106     00107     tableField() { name = refTableName = inverseRefName = NULL; }00108     ~tableField() { <span class="keyword">delete</span>[] name; <span class="keyword">delete</span>[] refTableName; <span class="keyword">delete</span>[] inverseRefName; }00109 };00110 00111 <span class="keyword">class </span>dbUpdateElement { 00112   <span class="keyword">public</span>:00113     dbUpdateElement*   next;00114     <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* field;00115     dbExprNode*        value;00116     <span class="keywordtype">char</span>*              strValue;00117 00118     dbUpdateElement() { 00119         next = NULL;00120         strValue = NULL;00121     }00122     ~dbUpdateElement() { 00123         <span class="keyword">delete</span>[] strValue;00124     }00125 };00126 00127 00128 <span class="preprocessor">#define MAX_HISTORY_SIZE 16</span>00129 <span class="preprocessor"></span>00130 <span class="keyword">class </span>dbXmlScanner { 00131   <span class="keyword">public</span>:00132     <span class="keyword">enum</span> { 00133         MaxIdentSize = 25600134     };00135     <span class="keyword">enum</span> token { 00136         xml_ident, 00137         xml_sconst, 00138         xml_iconst, 00139         xml_fconst, 00140         xml_lt, 00141         xml_gt, 00142         xml_lts, 00143         xml_gts,00144         xml_eq, 00145         xml_eof,00146         xml_error00147     };    00148     dbXmlScanner(FILE* f) { 00149         in = f;00150         sconst = <span class="keyword">new</span> <span class="keywordtype">char</span>[size = 1024];00151         line = 1;00152         pos = 0;00153     }00154     token scan();00155 00156     <span class="keywordtype">char</span>* getString() { 00157         <span class="keywordflow">return</span> sconst;00158     }00159 00160     <span class="keywordtype">char</span>* getIdentifier() { 00161         <span class="keywordflow">return</span> ident;00162     }00163 00164     size_t  getStringLength() { 00165         <span class="keywordflow">return</span> slen;00166     }00167 00168     db_int8 getInt() { 00169         <span class="keywordflow">return</span> iconst;00170     }00171 00172     <span class="keywordtype">double</span> getReal() { 00173         <span class="keywordflow">return</span> fconst;00174     }00175 00176     <span class="keywordtype">bool</span> expect(<span class="keywordtype">int</span> sourcePos, token expected) { 00177         token tkn = scan();00178         <span class="keywordflow">if</span> (tkn != expected) { 00179             fprintf(stderr, <span class="stringliteral">"subsql.cpp:%d: line %d, column %d: Get token %d instead of expected token %d\n"</span>, 00180                     sourcePos, line, pos, tkn, expected);00181             <span class="keywordflow">return</span> <span class="keyword">false</span>;00182         }00183         <span class="keywordflow">return</span> <span class="keyword">true</span>;

⌨️ 快捷键说明

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