Borland 就因为这个问题无法卖掉DELPHI。(惊暴内幕)如何提高MIDAS的运行效率问题,MASTER/DETAIL巢状,MIDAS.dll做了些什么?

  • 主题发起人 主题发起人 jettop
  • 开始时间 开始时间
J

jettop

Unregistered / Unconfirmed
GUEST, unregistred user!
Borland 就因为这个问题无法卖掉DELPHI。(惊暴内幕)如何提高MIDAS的运行效率问题,MASTER/DETAIL巢状,MIDAS.dll做了些什么?(100分)<br />我在服务器端做好MASTER/DETAIL巢状 , 在master.Open 后,在DBClient单元里的 procedure TCustomClientDataSet.OpenCursor(InfoQuery: Boolean);
过程中有
Check(FDSBase.AppendData(DataPacket, ProviderEOF));
语句里占用了大量时间,不知道在干些什么。
请问有这方面经验的哥们,有没有办法提高一下效率?
分段取数据是个办法,但仍在这个地方占了大半时间,不能完全解决问题。
 
回答精彩的,加分悬赏
 
bs 你这种人。
 
这是哪出对哪出啊
 
VCL不是开源的吗?这段代码在干什么自己跟一下不就知道了?或者CTRL + 鼠标左键跳一下不就看到了?
 
有道理。
 
取的数据太多,造成慢.
当使用 巢状结构时候.如果不采取分包,系统基本上不能使用.
另外,不要使用计算字段
还有,provider 中的属性要重新设定.不能使用default的值.
如果detail的数据比较大.建议master 每一次取5--10笔为好!
 
用MIDAS的话你可能会晕死!
 
当数据量大时候,如一次把所有的数据传到客户端,则速度会受到很大的影响,所以应该分批从应用程序服务器中取数据
 
大家都说Delphi开发方便,我个人觉得Delphi只做了30%的工作
实用开发,还是要涉及不少底层
 
FDSBase.AppendData(DataPacket, ProviderEOF) ,里面做了些什么,只有MIDAS.DLL知道,因为这里调了它的接口,无法再跟下去了.
现在不用MIDAS已太迟了,我已在数个项目中太量应用它,我实际上是C/S的,只是用 adoquery + datasetprovider + clientdataset ,封装成 一个dataset ,主要是处理多表关联时,更新单表方便,处理巢状也不错.
所以,我需要的是如果提高巢状时的效率问题.
不要再告诉我用分包之类的.....(分包是肯定有用到的)
 
to zqw0117:VCL 是开源,可MIDAS 不是开源的,还有BDE,也不是开源的
 
有人好像重写过这个方法,具体在哪忘掉了....
 
duhai_lee : 是吗? 在DFW ,找不到这些内容
 
jettop,很不好意思,我没有使用到IAppServer 的7个标准接口方法,
同时也建议你不要用,有位哥们说的对,Delphi也就提供了30%,
其余的涉及地层的玩意,只能自己玩了,想要健壮和高性能
那更是一定要!
 
以前曾经和一位外国哥们聊过,也看过他编写的替代Midas.dll的
玩意,呵呵!
不过,如果你不是把大批量数据使用AppendData,我想
是不会有这个问题,毕竟涉及到内存分配!
同时,Borland的knowledgBase也没有你所提及的这个问题!
 
其实我也只取了MASTER 的TOP 500条,每个表头对应表体平均为6条,则表体为 3000条左右,也不是很过份吧。GetRecord 约用了 15 秒(完全可以接受),可是AppendData 则花了近十分钟,这个用户无论如何也接受不了的。我曾用过DS 的ERP,它就是这样取MASTER/DETIAL巢状数据的,不过也只用了10秒左右数据就全部显示了,其中必有妙机。
 
注:李大哥,曾在台湾鼎新呆过,不知它的WF ERP的架构是否有他的思路或代码?
 
祝DFW的所有兄弟姐妹们 5.1 快乐!!
欢迎就这个问题发表你的高论,看热闹的也别忘了顶一下.[8D]
 
后退
顶部