亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fastdb.htm

?? FastDb是高效的內存數據庫系統
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
specification. Structures can contain other structures as their components;there are no limitations on the nesting level.<P>The programmer can define methods for structures, which can be usedin queries with the same syntax as normal structure components. Such a method should have no arguments except a pointer to the object to whichit belongs (the <code>this</code> pointer in C++), and should returnan atomic value (of boolean, numeric, string or reference type).Also the method should not change the object instance (immutable method).If the method returns a string, this string should be allocated using the<code>new char</code> operator, because it will be deleted after copying of its value.<P>So user-defined methods can be used for the creation of <I>virtual</I> components - components which are not stored in the database, but instead are calculatedusing values of other components. For example, the FastDB <code>dbDateTime</code>type contains only integer timestamp components and such methodsas <code>dbDateTime::year()</code>, <code>dbDateTime::month()</code>...So it is possible to specify queries like: "<code>delivery.year = 1999</code>"in an application, where the <code>delivery</code> record field has <code>dbDateTime</code> type. Methods are executed in the context of theapplication, where they are defined, and are not available to other applications and interactive SQL.<P><H3><A NAME = "array">Arrays</A></H3>FastDB accepts arrays with dynamic length as components of records. Multidimensional arrays are not supported, but it is possible todefine an array of arrays. It is possible to sort records in the result setby length of array field.FastDB provides a set of special constructions for dealing with arrays:<P><OL><LI>It is possible to get the number of elements in the array by the <code>length()</code> function. <LI>Array elements can be fetched by the<code>[]</code> operator.If an index expression is out of array range, an exception will be raised.<LI>The operator <code>in</code> can be used to check if an array containsa value specified by the left operand. This operation can be used only for arrays ofatomic type: with boolean, numeric, reference or string components.<LI>Array can be updated using <code>update</code> method which creates copy of the array and returnsnon-constant reference.<LI>Iteration through array elements is performed by the <code>exists</code> operator. A variable specified after the <code>exists</code> keyword can be usedas an index in arrays in the expression preceeded by the <code>exists</code>quantor. This index variable will iterate through all possible arrayindex values, until the value of the expression will become <code>true</code> orthe index runs out of range. The condition<PRE>        exists i: (contract[i].company.location = 'US')</PRE>will select all details which are shipped by companies located in 'US', while the query<PRE>        not exists i: (contract[i].company.location = 'US')</PRE>will select all details which are shipped from companies outside 'US'.<P>Nested <code>exists</code> clauses are allowed. Using nested <code>exists</code>quantors is equivalent to nested loops using the correspondentindex variables. For example the query<PRE>        exists column: (exists row: (matrix[column][row] = 0))</PRE>will select all records, containing 0 in elements of a <code>matrix</code> field, which has type array of array of integer.This construction is equivalent to the followingtwo nested loops:<PRE>       bool result = false;       for (int column = 0; column < matrix.length(); column++) {             for (int row = 0; row < matrix[column].length(); row++) { 	         if (matrix[column][row] == 0) {                      result = true;		     break;                 }            }       }</PRE>The order of using indices is essential! The result of the following query execution<PRE>        <code>exists row: (exists column: (matrix[column][row] = 0))</code></PRE>will be completely different from the result of the previous query.In the last case, the program simply hangs due to an infinite loopin case of empty matrices. </OL><H3><A NAME = "string">Strings</A></H3>All strings in FastDB have varying length and the programmer should notworry about specification of maximal length for character fields. All operations acceptable for arrays are also applicable to strings. In addition to them, strings have a set of own operations.First of all, strings can be compared with each other using standardrelation operators. At present, FastDB supports only theASCII character set (corresponds to type <code>char</code> in C) andbyte-by-byte comparison of strings ignoring locality settings.<P>The operator <code>like</code> can be used for matching a string with a pattern containing special wildcard characters'%' and '_'. The character '_' matches any single character, while the character '%' matches zero or more characters.An extended form of the <code>like</code> operator together withthe <code>escape</code> keyword can be used to handle thecharacters '%' and '_' in the pattern as normal characters if they are preceded by a special escape character, specified afterthe <code>escape</code> keyword.<P> If you rebuild GigaBASE with USE_REGEX macro, then you can use <code>match</code> operator implementing standard regular expressions(based on GNU regex library). Second operand of this operator specified regular expression to be matched and should be string literal.<P>It is possible to search substrings within a string by the <code>in</code>operator. The expression <code>('blue' in color)</code> will be truefor all records which <code>color</code> field contains 'blue'. If the length of the searched string is greater than some threshold value (currently 512), a Boyer-Moore substring search algorithm is used instead of a straightforward search implementation.<P>Strings can be concatenated by <code>+</code> or <code>||</code> operators.The last one was added for compatibility with the ANSI SQL standard.As far as FastDB doesn't support the implicit conversion to string type in expressions, the semantic of the operator <code>+</code> can be redefined forstrings.<P><H3><A NAME = "reference">References</A></H3>References can be dereferenced using the same dot notation as used foraccessing structure components. For example the following query<PRE>        company.address.city = 'Chicago'</PRE>will access records referenced by the <code>company</code> component ofa <code>Contract</code> record and extract the city component of the<code>address</code> field of the referenced record from the <code>Supplier</code> table.<P>References can be checked for <code>null</code> by <code>is null</code>or <code>is not null</code> predicates. Also references can be compared for equality with each other as well as with the special <code>null</code>keyword. When a null reference is dereferenced, an exception is raisedby FastDB.<P>There is a special keyword <code>current</code>, whichduring a table search can be used to refer to the current record.Usually , the <code>current</code>keyword is used for comparison of the current record identifier withother references or locating it within an array of references. For example, the following query will search in the <code>Contract</code> table for all active contracts(assuming that the field <code>canceledContracts</code> has a<code>dbArray&lt; dbReference&lt;Contract&gt; &gt;</code> type): <PRE>        current not in supplier.canceledContracts</PRE><P>FastDB provides special operators for recursive traverse of records by references:<PRE>     <code>start from</code> <I>root-references</I>     ( <code>follow by</code> <I>list-of-reference-fields</I> )</PRE>The first part of this construction is used to specify root objects. The nonterminal <I>root-references</I> should be a variable of reference orof array of reference type. The two special keywords <code>first</code> and<code>last</code> can be used here, locating the first/last record in the tablecorrespondingly. If you want to check all recordsreferenced by an array of references or a single reference field for some condition, then thisconstruction can be used without the <code>follow by</code> part.<P>If you specify the follow by part, then FastDB will recursively traverse the table of records, starting from the rootreferences and using a <I>list-of-reference-fields</I> for transition between records.The <I>list-of-reference-fields</I> should consist of fields ofreference or of array of reference type. The traverse is done in depth firsttop-left-right order (first we visit the parent node and then the siblings in left-to-right order).The recursion terminates when a null reference is accessedor an already visited record is referenced. For example the followingquery will search a tree of  records with weight larger than 1 in TLR order:<P><PRE>        "weight > 1 start from first follow by left, right"</PRE><P>For the following tree:<PRE>                              A:1.1              B:2.0                             C:1.5      D:1.3         E:1.8                F:1.2         G:0.8</PRE>the result of the query execution will be: <PRE>('A', 1.1), ('B', 2.0), ('D', 1.3), ('E', 1.8), ('C', 1.5), ('F', 1.2)</PRE><P>As was already mentioned FastDB always manipulates with objects and doesn't accept joins. Joins can be implemented using references. Consider the classical <code>Supplier-Shipment-Detail</code> examples: <PRE>struct Detail {     char const* name;    double      weight;        TYPE_DESCRIPTOR((KEY(name, INDEXED), FIELD(weight)));};struct Supplier {     char const* company;    char const* address;    TYPE_DESCRIPTOR((KEY(company, INDEXED), FIELD(address)));};struct Shipment {     dbReference&lt;Detail&gt;   detail;    dbReference&lt;Supplier&gt; supplier;    int4                  price;    int4                  quantity;    dbDateTime            delivery;    TYPE_DESCRIPTOR((KEY(detail, HASHED), KEY(supplier, HASHED), 		     FIELD(price), FIELD(quantity), FIELD(delivery)));};</PRE>We want to get information about delivery of some concrete details from some concretesuppliers. In relational database this query will be written something like this:<PRE>     select from Supplier,Shipment,Detail where                  Supplier.SID = Shipment.SID and Shipment.DID = Detail.DID 		 and Supplier.company like ? and Supplier.address like ?		 and Detail.name like ? </PRE>In FastDB this request should be written as: <PRE>     dbQuery q = "detail.name like",name,"and supplier.company like",company,	         "and supplier.address like",address,"order by price";</PRE>     FastDB will first perform index search in the table <code>Detail</code> for detailsmatching the search condition. Then it performs another index search to locate shipment records referencing selected details. Then sequential search is used to check the rest ofselect predicate.<P><H3><A NAME = "rectangle">Rectangle</A></H3>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产高清影视| 欧美高清视频一二三区| 国产午夜精品久久久久久免费视| 午夜免费欧美电影| 欧美四级电影在线观看| 一区二区三区小说| 色婷婷亚洲婷婷| 一区二区三区日韩欧美| 欧美视频中文字幕| 午夜精彩视频在线观看不卡| 91极品视觉盛宴| 亚洲成人午夜电影| 久久久午夜电影| eeuss鲁片一区二区三区在线观看| 欧美日本国产视频| 蜜桃视频一区二区| 久久久亚洲精品一区二区三区| 紧缚捆绑精品一区二区| 久久奇米777| 秋霞午夜鲁丝一区二区老狼| 日本一区二区高清| 国产一二三精品| 中文字幕一区二区5566日韩| 色综合激情久久| 亚洲电影中文字幕在线观看| 欧美高清一级片在线| 久久99久久久久| 国产欧美一区二区精品性| 成人激情综合网站| 夜夜精品浪潮av一区二区三区| 在线观看网站黄不卡| 欧美96一区二区免费视频| 久久精品欧美日韩| 色呦呦国产精品| 亚洲国产精品久久久久秋霞影院| 色综合中文字幕| 一区二区三区.www| 欧美美女一区二区在线观看| 蜜臀精品一区二区三区在线观看| 欧美精品一区在线观看| 福利一区二区在线| 亚洲一区二区三区不卡国产欧美| 欧美一区二区免费| 懂色av一区二区夜夜嗨| 五月婷婷激情综合网| 久久精品夜色噜噜亚洲a∨| 99视频国产精品| 蜜桃在线一区二区三区| 中文字幕一区二区三区在线不卡 | 高清成人在线观看| 亚洲男人电影天堂| 久久亚洲捆绑美女| 欧美日韩一区二区三区高清| 久久综合五月天婷婷伊人| 国产麻豆成人传媒免费观看| 亚洲一卡二卡三卡四卡无卡久久| 欧美一区二区福利视频| 91丨porny丨蝌蚪视频| 麻豆成人久久精品二区三区小说| 国产精品久久久久天堂| 欧美日韩二区三区| 成人精品国产免费网站| 男女性色大片免费观看一区二区 | 久久久久久综合| 欧美主播一区二区三区美女| 国产精品性做久久久久久| 视频一区视频二区中文| 亚洲色图在线播放| 久久精品人人做人人爽97| 欧美日韩国产色站一区二区三区| 成人午夜视频网站| 午夜在线成人av| 国产亚洲短视频| 精品精品欲导航| 国产午夜精品一区二区三区视频| 大陆成人av片| 精久久久久久久久久久| 天天免费综合色| 日韩精品一区二区三区四区视频 | 久久精品国产第一区二区三区| 欧美日韩国产经典色站一区二区三区 | 欧美性猛交xxxx乱大交退制版| 亚洲国产视频在线| 国产精品美女一区二区三区 | 99久久精品国产麻豆演员表| 日韩欧美第一区| 国产精品情趣视频| 欧美激情综合在线| 日韩一级高清毛片| 丁香啪啪综合成人亚洲小说 | 成人免费看片app下载| 国产精品国产馆在线真实露脸 | 亚洲国产欧美在线人成| 亚洲人成网站色在线观看| 国产精品欧美久久久久无广告| 日韩欧美国产午夜精品| 欧美电视剧在线看免费| 日韩欧美国产成人一区二区| 欧美mv日韩mv| 久久久国产一区二区三区四区小说| 91精品国产品国语在线不卡| 91麻豆精品国产91久久久久| 51精品秘密在线观看| 欧美日韩国产高清一区| 99综合影院在线| 91麻豆国产在线观看| 色乱码一区二区三区88| 欧美日韩亚洲综合在线| 欧美一区二区三区四区视频| 日韩久久久久久| 精品国产乱码久久久久久图片| 欧美国产精品一区二区| 激情欧美一区二区三区在线观看| 欧美aaaaaa午夜精品| 久久精品国产免费看久久精品| 国产在线精品一区二区夜色 | 色噜噜狠狠色综合欧洲selulu| 欧美老肥妇做.爰bbww| 久久夜色精品国产噜噜av| 亚洲欧美一区二区三区国产精品| 五月开心婷婷久久| 成人免费精品视频| 88在线观看91蜜桃国自产| 国产女人18水真多18精品一级做| 亚洲国产毛片aaaaa无费看 | 成人性视频免费网站| 欧美视频自拍偷拍| 中文字幕不卡的av| 久久精品99久久久| 精品国产成人系列| 亚洲综合久久av| 日韩欧美国产综合在线一区二区三区| 精品国产一区久久| 日韩一区欧美二区| 精品美女被调教视频大全网站| 国产精品丝袜91| 蜜臀99久久精品久久久久久软件| 99精品国产一区二区三区不卡| 欧美成人免费网站| 亚洲国产精品天堂| 99天天综合性| 国产精品久久久久久久久动漫 | 国产精品影视在线观看| 国产欧美精品一区| 亚洲综合免费观看高清在线观看| 精品欧美一区二区久久| 精品对白一区国产伦| 欧美亚洲图片小说| 欧美日韩一区中文字幕| 亚洲人精品一区| 国产成人一区二区精品非洲| 精品国产一区二区三区久久久蜜月| 亚洲国产日韩一区二区| 99re这里都是精品| 国产精品你懂的在线| 国产黄色91视频| 国产欧美一区二区精品性| 国产一区二区三区美女| 久久婷婷成人综合色| 日韩女优av电影| 国产成人免费9x9x人网站视频| 日本一区免费视频| 91国在线观看| 日本强好片久久久久久aaa| 欧美日韩电影在线| 麻豆精品在线观看| 国产欧美一区二区三区沐欲| 在线观看日韩电影| 日本久久一区二区| 精品粉嫩aⅴ一区二区三区四区| 中文字幕在线不卡一区| 日韩激情av在线| 97se亚洲国产综合自在线| 欧美电影在哪看比较好| 日精品一区二区三区| 亚洲男人的天堂在线aⅴ视频| 亚洲成人精品影院| 国产成人啪免费观看软件| 91福利精品视频| 久久精品视频在线免费观看| 亚洲欧美偷拍另类a∨色屁股| 蜜臀国产一区二区三区在线播放| 欧美日韩亚洲不卡| 欧美一级在线免费| 最好看的中文字幕久久| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美日韩精品一区视频| www久久精品| 欧美精品久久天天躁| 在线观看日韩毛片| 成人av电影在线观看| 狠狠狠色丁香婷婷综合久久五月| 亚洲精品免费在线观看| 日韩—二三区免费观看av| 看电视剧不卡顿的网站| 青青草国产精品亚洲专区无| 欧美在线看片a免费观看| 日日夜夜精品免费视频| 精品国产一二三区| 成人高清免费在线播放|