★★MemorySQl终于出世了 ★★(100)

  • 主题发起人 主题发起人 yeskert1
  • 开始时间 开始时间
TMMSQLDataset是用X-SQL引擎开发的,FileSQL也是用X-SQL引擎开发的。我写X-SQL引擎其实是为了对内存中流动的数据过滤的,比如复杂的数据采集,当有非常多的不同类型数据从多个端口涌入时,希望能有选择的关注、有选择的保存。“要求”可以用代码表示,也可以用字符串表示(如SQL),我从灵活性的角度考虑倾向于SQL(LINQ就是用代码表示需求)。我们也不希望将已经进入到内存的数据再进行转存--即便是转存到另一内存块也是不希望的,所以我们仅仅是要求两个接口,能通过这两个接口访问数据就可以了。
 
to cpj7406: 你说的很对啊! 但是“所谓内存查询,其实只是查询条件的逐步叠加而已,也就是不断的有更多的and条件”不知道怎么理解!where执行的时候分两步,即过滤和关联,即便是过滤,也不会导致原来数据集再次与数据库交互。就是说,过滤和关联都是TMMSQLDataset自己完成的。 TMMSQLDataset的作用在哪里呢?我觉得有这几种情况:1、如果系统中不止一个数据库,同构或者异构的,用TMMSQLDataset可以对它们关联查询;直接写代码去做恐怕就费劲了。2、当初数据库的设计与后来“数据消费”的要求往往有很大差距,比如出现一个查询或者报表,其数据虽然能计算出来,但要写很多代码去处理。也许可以说是设计有问题,但是越大的系统越容易出现这个现象,毕竟设计者难以做到全面、综合、细节的考虑。如果有TMMSQLDataset,当出现这种情况的时候,不再那么痛苦。因为它可以多次再组织![:D]3、模块间的数据接口问题,一方要求数据另一方提供数据,针对这个要求,提供方在设计数据结构的时候就要认真考虑,这就是耦合啊!如果有TMMSQLDataset,如果在中间层提供数据,那么可以说不是很担心数据接口的问题。于是耦合紧密度就低了。这也是一种解放。
 
好贴要顶!原创控件更要顶!
 
谢谢大家捧场!过几天有时间的时候写个MailSQL奉献给大家,用来从OutlookExpress或者Foxmail查询邮件。不知道谁有outlookExpress和foxmail的文件结构?
 
好象xQuery就可以SQL查询TDataset吧?
 
强烈顶一个虽然我现在用的是adoquery的过滤功能
 
XQuery?不会吧?!
 
TMMSQLDataset可不仅仅是过滤,它能从多个dataset查询数据。它强调的是“关系”和“再组织”。如:select a.*,b.*from adotable1 a,clientdataset1 bwhere a.year=b.year and a.month=b.month and a.id=b.idorder by b.year,b.month再如:select a.year,a.month,strsum(a.name,';') names,sum(a.in) in,sum(a.out) outfrom adoquery1group by a.year,a.mont
 
哦稳定性、版本性等问题安全吗?
 
稳定性正在检验中。我自己测了几个月了,目前属于自己很难发现问题的阶段,所以很希望能收到反馈信息。
 
你发给我1个,我帮你测试。
 
to jerry1001: 我不知道往哪发。 这个地址就可以下载: http://www.x-sql.net/downloadpage.aspx?id=33
 
我现在用到的一个控件用来做本地的缓存就可以实现你要的那个功能
 
什么控件?
 
Notouch: 什么控件?
 
支持原创,顶了!楼主太有才了。
 
应该使用ClientDatase吧? dataset是要保持连接的.如果保持连接,你写的这个控件还有什么意义呢? 我可以直接去数据库查呢!
 
TMMSQLDataset的目的是“再组织”,数据来源是其他dataset。其他的Dataset,可能指向不同的数据库,比如dataset1指向SQLServer,Dataset2指向access,Dataset3指向oracle……,就是这个意思,TMMSQLDataset能在它们之上,使用sql语句再组织一次。还有,也许dataset4是一个clientdataset,其内容是你用代码生成的,或者dataset5是TMMSQLDataset类型的,总之,TMMSQLDataset能“再组织”、“再再组织”。
 
什么情况下能用上TMMSQLDataset?1、象上面说的,需要将来自异构的数据组织起来时,用代码就费劲了,用TMMSQLDataset就很简洁;2、应对“高聚合的数据消费”。数据消费一般指数据查询和报表,有时也包括数据接口等数据输出。消费是后期行为,“变化”是其一大特征。数据库设计不可能完全考虑到所有消费可能性,只能做到“数据完备”。但完备的数据相对消费者的需求往往显得太“原始”,需要多次“加工”、“再生”才能应用,要不然,那些数据仓库也就不会存在了。 我想说的是:TMMSQLDataset也是很好的再生、再组织的手段。很多时候你发现某个用户要求的数据无法用SQL直接实现,需要写不少代码去配合多次SQL。TMMSQLDataset的意义是解放你写代码,只需SQL就行了,具备高抽象性和高简洁性。当然,你有数据仓库就不必它了。 TMMSQLDataset面对的是习惯和喜欢使用SQL的开发者,如果你更喜欢用代码,估计不用用它。3、TMMSQLDataset继承自ClientDataset。大家都知道ClientDataset有XMLData属性,可以输出XML,因此,TMMSQLDataset是另一种组织生产XML的方式。
 
小雨哥,不能验证的问题还能解决不?
 
后退
顶部