subsql_8h-source.html
来自「一个功能强大的内存数据库源代码,c++编写,有详细的注释」· HTML 代码 · 共 190 行
HTML
190 行
<!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.15 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </center><hr><h1>subsql.h</h1><div class="fragment"><pre>00001 <font class="comment">//-< SUBSQL.H >------------------------------------------------------*--------*</font>00002 <font class="comment">// FastDB Version 1.0 (c) 1999 GARRET * ? *</font>00003 <font class="comment">// (Main Memory Database Management System) * /\| *</font>00004 <font class="comment">// * / \ *</font>00005 <font class="comment">// Created: 20-Nov-98 K.A. Knizhnik * / [] \ *</font>00006 <font class="comment">// Last update: 10-Dec-98 K.A. Knizhnik * GARRET *</font>00007 <font class="comment">//-------------------------------------------------------------------*--------*</font>00008 <font class="comment">// Interactive data manipulation language (subset of SQL)</font>00009 <font class="comment">//-------------------------------------------------------------------*--------*</font>00010 00011 <font class="preprocessor">#ifndef __SUBSQL_H__</font>00012 <font class="preprocessor"></font><font class="preprocessor">#define __SUBSQL_H__</font>00013 <font class="preprocessor"></font>00014 <font class="keyword">enum</font> SubSqlTokens { 00015 tkn_array = tkn_last_token, 00016 tkn_autoincrement,00017 tkn_backup,00018 tkn_bool,00019 tkn_commit,00020 tkn_compactify,00021 tkn_create,00022 tkn_delete,00023 tkn_describe,00024 tkn_drop,00025 tkn_exit,00026 tkn_hash,00027 tkn_help,00028 tkn_index,00029 tkn_int1,00030 tkn_int2,00031 tkn_int4,00032 tkn_int8,00033 tkn_of,00034 tkn_on,00035 tkn_open,00036 tkn_real4, 00037 tkn_real8, 00038 tkn_reference,00039 tkn_rollback,00040 tkn_server,00041 tkn_set,00042 tkn_stop,00043 tkn_semi,00044 tkn_show,00045 tkn_to, 00046 tkn_update,00047 tkn_values00048 };00049 00050 00051 00052 <font class="keyword">class </font>dbList { 00053 <font class="keyword">public</font>:00054 <font class="keyword">enum</font> NodeType { 00055 nInteger,00056 nBool,00057 nReal,00058 nString,00059 nTuple,00060 nAutoinc,00061 nIdentifier00062 };00063 00064 dbList* next;00065 <font class="keywordtype">int</font> type;00066 <font class="keyword">union </font>{ 00067 <font class="keywordtype">bool</font> bval;00068 db_int8 ival;00069 real8 fval;00070 <font class="keywordtype">char</font>* sval;00071 <font class="keyword">struct </font>{ 00072 <font class="keywordtype">int</font> nComponents;00073 dbList* components;00074 } aggregate;00075 };00076 00077 ~dbList() { 00078 <font class="keywordflow">if</font> (type == nTuple) {00079 <font class="keyword">delete</font> aggregate.components;00080 } <font class="keywordflow">else</font> <font class="keywordflow">if</font> (type == nString || type == nIdentifier) {00081 <font class="keyword">delete</font>[] sval;00082 }00083 }00084 00085 dbList(<font class="keywordtype">int</font> type) { 00086 this->type = type;00087 next = NULL; 00088 }00089 };00090 00091 00092 <font class="keyword">struct </font>tableField { 00093 <font class="keywordtype">char</font>* name;00094 <font class="keywordtype">char</font>* refTableName;00095 <font class="keywordtype">int</font> type;00096 00097 tableField() { name = refTableName = NULL; }00098 ~tableField() { <font class="keyword">delete</font>[] name; <font class="keyword">delete</font>[] refTableName; }00099 };00100 00101 <font class="keyword">class </font>dbUpdateElement { 00102 <font class="keyword">public</font>:00103 dbUpdateElement* next;00104 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* field;00105 dbExprNode* value;00106 <font class="keywordtype">char</font>* strValue;00107 00108 dbUpdateElement() { 00109 next = NULL;00110 strValue = NULL;00111 }00112 ~dbUpdateElement() { 00113 <font class="keyword">delete</font>[] strValue;00114 }00115 };00116 00117 <font class="keyword">class </font>dbSubSql : <font class="keyword">public</font> <a class="code" href="classdbDatabase.html">dbDatabase</a> { 00118 <font class="keyword">private</font>:00119 <font class="keywordtype">int</font> pos;00120 <font class="keywordtype">int</font> line;00121 <font class="keywordtype">int</font> tknPos;00122 <font class="keywordtype">char</font>* buf;00123 <font class="keywordtype">int</font> buflen;00124 FILE* in;00125 <font class="keywordtype">bool</font> opened;00126 db_int8 ival;00127 real8 fval;00128 <font class="keywordtype">char</font>* name;00129 00130 <font class="keyword">static</font> <font class="keywordtype">char</font>* prompt;00131 00132 <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* droppedTables;00133 <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* existedTables;00134 00135 <a class="code" href="classdbQuery.html">dbQuery</a> query;00136 dbCompiler compiler;00137 00138 <font class="keywordtype">void</font> handleError(dbErrorClass error, <font class="keywordtype">char</font> <font class="keyword">const</font>* msg = NULL, <font class="keywordtype">int</font> arg = 0);00139 00140 <font class="keywordtype">void</font> error(<font class="keywordtype">char</font> <font class="keyword">const</font>* msg);00141 00142 <font class="keywordtype">int</font> <a class="code" href="classdbDatabase.html#dbSubSqlb7">get</a>();00143 <font class="keywordtype">void</font> unget(<font class="keywordtype">int</font> ch);00144 <font class="keywordtype">int</font> scan();00145 <font class="keywordtype">bool</font> parse();00146 00147 <font class="keywordtype">bool</font> expect(<font class="keywordtype">char</font>* expected, <font class="keywordtype">int</font> token);00148 00149 <font class="keywordtype">void</font> recovery();00150 00151 <font class="keywordtype">bool</font> isValidOid(oid_t oid);00152 00153 <font class="keyword">static</font> <font class="keywordtype">void</font> dumpRecord(byte* record, <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* first);00154 <font class="keyword">static</font> <font class="keywordtype">int</font> calculateRecordSize(dbList* list, <font class="keywordtype">int</font> offs,00155 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* first);00156 <font class="keywordtype">int</font> initializeRecordFields(dbList* node, byte* dst, <font class="keywordtype">int</font> offs, 00157 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* first);00158 <font class="keywordtype">bool</font> <a class="code" href="classdbDatabase.html#dbSubSqla18">insertRecord</a>(dbList* list, <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* desc);00159 <font class="keywordtype">bool</font> readCondition();00160 <font class="keywordtype">int</font> readExpression();00161 <font class="keywordtype">int</font> readValues(dbList** chain);00162 <font class="keywordtype">bool</font> updateFields(<a class="code" href="classdbAnyCursor.html">dbAnyCursor</a>* cursor, dbUpdateElement* elems);00163 <font class="keywordtype">bool</font> createTable();00164 <font class="keywordtype">int</font> parseType();00165 <font class="keywordtype">int</font> updateRecords(<a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* desc, dbList *fields, dbList *values, <a class="code" href="classdbAnyCursor.html">dbAnyCursor</a> &cursor, byte *buf);00166 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* readFieldName();00167 <font class="keyword">public</font>:00168 <font class="keywordtype">void</font> run(<font class="keywordtype">int</font> argc, <font class="keywordtype">char</font>* argv[]);00169 00170 dbSubSql(dbAccessType accessType);00171 <font class="keyword">virtual</font>~dbSubSql();00172 }; 00173 00174 00175 <font class="preprocessor">#endif</font></pre></div><hr><address align="right"><small>Generated on Fri Nov 15 21:06:29 2002 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.15 </small></address></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?