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

📄 subsql_8h-source.html

📁 俄罗斯牛人KK的作品,著名的ORDBMS,这里上传最新的3.39版本源代码.希望了解对象关系数据库的同好,请不要错过.
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>subsql.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center><hr><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 BEGIN_FASTDB_NAMESPACE00015 00016 <span class="keyword">enum</span> SubSqlTokens { 00017     tkn_alter = tkn_last_token,00018     tkn_array,00019     tkn_autoincrement,00020     tkn_autocommit,00021     tkn_backup,00022     tkn_bool,00023     tkn_commit,00024     tkn_compactify,00025     tkn_count,00026     tkn_create,00027     tkn_delete,00028     tkn_describe,00029     tkn_drop,00030     tkn_exit,00031     tkn_export,00032     tkn_hash,00033     tkn_help,00034     tkn_http,00035     tkn_import,00036     tkn_index,00037     tkn_int1,00038     tkn_int2,00039     tkn_int4,00040     tkn_int8,00041     tkn_inverse,00042     tkn_memory, 00043     tkn_of,00044     tkn_off,00045     tkn_on,00046     tkn_open,00047     tkn_profile, 00048     tkn_real4, 00049     tkn_real8, 00050     tkn_rectangle,00051     tkn_reference,00052     tkn_rollback,00053     tkn_server,00054     tkn_set,00055     tkn_stop,00056     tkn_semi,00057     tkn_show,00058     tkn_to, 00059     tkn_update,00060     tkn_values,00061     tkn_version00062 };00063         00064     00065 00066 <span class="keyword">class </span>dbList { 00067   <span class="keyword">public</span>:00068     <span class="keyword">enum</span> NodeType { 00069         nInteger,00070         nBool,00071         nReal,00072         nString,00073         nTuple,00074         nAutoinc,00075         nIdentifier00076     };00077 00078     dbList* next;00079     <span class="keywordtype">int</span>     type;00080     <span class="keyword">union </span>{ 00081         <span class="keywordtype">bool</span>  bval;00082         db_int8  ival;00083         real8 fval;00084         <span class="keywordtype">char</span>* sval;00085         <span class="keyword">struct </span>{ 00086             <span class="keywordtype">int</span>     nComponents;00087             dbList* components;00088         } aggregate;00089     };00090 00091     ~dbList() { 00092         <span class="keywordflow">if</span> (type == nTuple) {00093             dbList* list = aggregate.components;00094             <span class="keywordflow">while</span> (list != NULL) { 00095                 dbList* tail = list-&gt;next;00096                 <span class="keyword">delete</span> list;00097                 list = tail;00098             }00099         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == nString || type == nIdentifier) {00100             <span class="keyword">delete</span>[] sval;00101         }00102     }00103 00104     dbList(<span class="keywordtype">int</span> type) { 00105         this-&gt;type = type;00106         next = NULL; 00107     }00108 };00109 00110 00111 <span class="keyword">struct </span>tableField { 00112     <span class="keywordtype">char</span>* name;00113     <span class="keywordtype">char</span>* refTableName;00114     <span class="keywordtype">char</span>* inverseRefName;00115     <span class="keywordtype">int</span>   type;00116     00117     tableField() { name = refTableName = inverseRefName = NULL; }00118     ~tableField() { <span class="keyword">delete</span>[] name; <span class="keyword">delete</span>[] refTableName; <span class="keyword">delete</span>[] inverseRefName; }00119 };00120 00121 <span class="keyword">class </span>dbUpdateElement { 00122   <span class="keyword">public</span>:00123     dbUpdateElement*   next;00124     <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* field;00125     dbExprNode*        value;00126     <span class="keywordtype">char</span>*              strValue;00127 00128     dbUpdateElement() { 00129         next = NULL;00130         strValue = NULL;00131         value = NULL;00132     }00133     ~dbUpdateElement() { 00134         <span class="keyword">delete</span>[] strValue;00135         <span class="keyword">delete</span> value;00136     }00137 };00138 00139 00140 <span class="preprocessor">#define MAX_HISTORY_SIZE 16</span>00141 <span class="preprocessor"></span>00142 <span class="keyword">class </span>dbXmlScanner { 00143   <span class="keyword">public</span>:00144     <span class="keyword">enum</span> { 00145         MaxIdentSize = 25600146     };00147     <span class="keyword">enum</span> token { 00148         xml_ident, 00149         xml_sconst, 00150         xml_iconst, 00151         xml_fconst, 00152         xml_lt, 00153         xml_gt, 00154         xml_lts, 00155         xml_gts,00156         xml_eq, 00157         xml_eof,00158         xml_error00159     };    00160     dbXmlScanner(FILE* f) { 00161         in = f;00162         sconst = <span class="keyword">new</span> <span class="keywordtype">char</span>[size = 1024];00163         line = 1;00164         pos = 0;00165     }00166     token scan();00167 00168     <span class="keywordtype">char</span>* getString() { 00169         <span class="keywordflow">return</span> sconst;00170     }00171 00172     <span class="keywordtype">char</span>* getIdentifier() { 00173         <span class="keywordflow">return</span> ident;00174     }00175 00176     size_t  getStringLength() { 00177         <span class="keywordflow">return</span> slen;00178     }00179 00180     db_int8 getInt() { 00181         <span class="keywordflow">return</span> iconst;00182     }00183 00184     <span class="keywordtype">double</span> getReal() { 00185         <span class="keywordflow">return</span> fconst;00186     }00187 00188     <span class="keywordtype">bool</span> expect(<span class="keywordtype">int</span> sourcePos, token expected) { 00189         token tkn = scan();00190         <span class="keywordflow">if</span> (tkn != expected) { 00191             fprintf(stderr, <span class="stringliteral">"subsql.cpp:%d: line %d, column %d: Get token %d instead of expected token %d\n"</span>, 00192                     sourcePos, line, pos, tkn, expected);00193             <span class="keywordflow">return</span> <span class="keyword">false</span>;00194         }00195         <span class="keywordflow">return</span> <span class="keyword">true</span>;

⌨️ 快捷键说明

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