Docm 三層, 如何處理大量數據的更新?(100分)

  • 主题发起人 主题发起人 rixin
  • 开始时间 开始时间
我来啦!
to CJ:
我看离线版时发现你在今年3月就对midas很了解了,谈谈经验好吗?:)
to rixin:
不忍让兄弟着急,先给你我会的吧!
const CDSCount=22;//"子包"的数量
var
DataSave:IDataSave;//S端的接口变量,在你S端的XXXX_TLB.pas中声明
vDeltas:OleVariant;
iIndex:integer;
begin
SaveInit;作些你的准备工作
vDeltas:=VarArrayCreate([0,CDSCount], varVariant);//生成动态数组
iIndex:=-1;
dmGenInfo.CreateDeltas(iIndex,vDeltas);
dmBaoxian.CreateDeltas(iIndex,vDeltas);
dmGoods.CreateDeltas(iIndex,vDeltas);
//以上为将delta打包到大包vDeltas的过程.
DataSave:=CoDataSave.CreateRemote(S端计算机名);
DataSave.Save(vDeltas,0);//save为自定义的方法
end;
S端Demo
SAVE方法可以如下:
var
v:OleVariant;
ID,desc1,desc2:String;
begin
v:=CreateOleObject('EntityMnt.Entity');//生成本地com,此com用于你的大数据更新;
v.Update(传过来的大包变量);//用于"修理"你的大库(此处应用事务保证更新的连贯)
end;
 
****!说错了,去年三月
 
呵呵,很久没上来,一上来就碰到高手叫板:)
实际上,我觉得,多层实际上是把许多功能分开,就像C/S把功能分成C和S
多层把功能分成了C、APP SERVER、DB SERVER,具体什么功能放在哪里都
要视情况而定的,其中app server占有很大比重。我的多层程序,客户端
几乎就没什么东西(抱歉,MIDAS真的没什么信心了,现在用ASTA2),牵
涉到事物的,一律放在SERVER上做,大量数据处理我用SP。至于数据更新,
一次性更新量不推荐太大。
一般的系统我还是不推荐使用多层的,实际上,我认为多层的好处在于:
1、不用配置客户;
2、在大系统中可以用多个APP SERVER实现负载均衡;
3、体现自己的技术先进,多骗点钱。
好象upplyupdate不下载数据库服务器所有数据的吧?我对它的工作原理
到没有研究过。
如无需以上特性,C/S还是首选。
另,Crane:那个一次性更新5万记录的问题解决了吗?
 
to CJ:
>>体现自己的技术先进,多骗点钱。
呵呵!说的好!:)
>>那个一次性更新5万记录的问题解决了吗?
我没见过这个问题啊?(Crane很健忘)
另:这种更新常常是要对某字段的数据一律改成同一个新的数据
用我上面的方法应该可以,起码不让C端为难。
BTW:小弟99年9月才开始学delphi,“高手”就太不敢当了!“叫板“
便连想过都没有,我还需前辈们多多指点。
 
Ido
n't know?I think...
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
810
import
I
S
回复
0
查看
937
SUNSTONE的Delphi笔记
S
后退
顶部