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> &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 <font class="comment">//-&lt; SUBSQL.H &gt;------------------------------------------------------*--------*</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-&gt;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> &amp;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 + -
显示快捷键?