注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

转载:STSdb 4.0 说明文档  

2013-05-28 09:06:57|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

转载:http://www.cnblogs.com/yaozhenfa/archive/2013/05/28/3102942.html

介于本人英语水平有限,如果有任何错误请留言,谢谢。

简单实例

  1. 打开数据库并且创建一个简单的表

      2.从表中读取

         

 

             存储引擎

                           STSdb 4.0 的存储引擎是基于瀑布树TM 实现的。存储引擎提供了两种数据结构—XIndexXFile。一个存储引擎可以包含多个 XIndex表和多个XFile文件。

 

             XIndex

                         XIndex是一个已经排序的键值存储映射(表)。我们可以在一个存储引擎中利用不同类型的键值打开不同属性的表。并且在每个表的行数上没有任何限制。

 

     提示:engine.Commit() 提交所有已经刷新的表的更改。在正式发布的每个表,Commit() 方法将会被忽略

 

  1. XIndex<TKey,TRecord> 支持的类型

         

            TKeyTRecord支持的类型有:

                     1.1. 基本类型—Boolean,Char,SByte,Byte,Int16,UInt16,Int32,UInt32,Int64,UInt64,Single,Double,Decimal,DateTime,String,byte[];

                     1.2. 拥有默认构造函数的类或结构体,并且特性的类型是公共的,类型是1.1.中指定的

                     1.3. 拥有默认构造函数的类或结构体,并且特性的类型是公共的,类型是1.1.和1.2.中指定的

                                如例子,如果我们拥有以下两种类型:

                                           

 

                               我们可以打开不同类型的表:

                                           

                                           

                                     乃至:

                                           

                            至于复合键,引擎比较子键,在排序已经声明的特性。

  

            2.XIndex<TKey,TRecord> 方法

                             XIndex<TKey,TRecord> 实现了 IIndex<TKey,TRecord> 接口。

              基本用户方法:

                        

                        

                           默认的XIndex枚举正序遍历表的行

                                      Forward() 方法正序遍历表的行 

                                      Backward() 方法反序遍历表的行

 

                                     FindNext() 返回大于或等于指定行的第一个(如果存在)

                                     FindAfter() 返回大于指定行的第一个(如果存在)

                                     FindPrev() 返回小于或等于指定行的第一个(如果存在)

                                     FindBefore() 返回小于指定行的第一个(如果存在)

 

                                    FirstRow 返回键最小的那一行

                                    LastRow 返回键最大的那一行

                         异步改变XIndex的内容的方法——他们会产生一定的操作在瀑布树中

                          -          This[TKey key] set;

                          -          Replace(TKey key, TRecord record);

                          -          Delete(TKey key);

                          -          Clear();

 

        3.XIndex<TKey,TRecord> 基础

                      正如我们所提到的,每个储存引擎可以处理不同类型的XIndex<TKey,TRecord> 表.每个TKeyTRecord可以是任何基本类型、结构体或者类。但是在所有的情况下,每个XIndex<TKey,TRecord> 使用一个指定的非通用 XIndex 表来存储它的数据。

                                      

                     当一个 XIndex<TKey,TRecord> 被创建后,它将利用.NET表达式自动生成并且编译转换代码以便将每个TKeyTRecord 对象转换成能够支持 IData 对象。因此,从一个数据库的观念来看,XIndex<TKey,TRecord> 经过应用数据层和内置数据层之间的转换层之后快速的呈现。即使开发者可能使用了自定义类型的应用数据,也保证了内置存储的独立性。

 

        4.XIndex 和IData 继承

                   XIndex 表和内部继承的IData一起工作。在STSdb 4.0 中被忽略

                 

            当前版本的TKeyTRcord最大可以支持64个位置。每个位置可以是任何基本类型。

 

            以下代码演示了直接使用非通用的XIndex的情况

                

 

               

         数据转换器将会尽力的将IData类型转换成应用类型。他们由XIndex<TKey,TRecord>XIndex表之间的转换层构成。所有转换器看起来像:

               

        每个XIndex<TKey,TRecord> 实例自动实现两种数据转换 - 一种是keys另一种是records。那么每个输入的TKey/TRecord对象会被转换成适当的IData对象。同样的,每个来自XIndexIData对象都已经被隐藏的转换成了TKey/TRecord.

        假设我们现在有以下类:

               

       如果我们有XIndex<long,Tick>

             

       然后XIndex表将会被以下两种类型的,keysrecords打开:

            

      我们可以同时打开后台的 XIndex

            

      最终 table 和 table2 将会得到同样的数据

 

     如果我们决定扩展Tick类的property,改成非基本类型。

           

      然后后台XIndex将会采用以下类型被打开

         

     如果我们决定排除 Symbol 和 Timestamp 并且采用他们作为复合键:

        

        

      然后后台XIndex将会采用以下类型打开:

         

XFile

      STSdb 4.0 通过使用XFile以支持稀疏的文件。我们可以跟使用.NET流一样使用XFile。

         

在满足必要的经济的条件下,研究更佳高深的技术.满足自己的野心
  评论这张
 
阅读(688)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017