本人做了个系统,不打算在服务器端写放太多的控件,打算写方法处理,主要是更新的问题,可能是一个表的数据,也可能是多个表的数据。比如现在就是一个表的数据吧,我把客户端的ClientDataset.delta的数据传过来,然后我如何写一个通用的方法处理类似于这种单个表的delta更新呢?参数应该是(表名,delta)对吧?那么对于多个表的处理情况呢?ado是否能自动更新多个表的数据呢?不是的,自己写有何通用的好的方法?谢谢!分不够的话可以多送的。再谢!
调试欢乐多
李威的书里有讲!
难道有很多同时更新多个表的情况吗?你考虑一下现实中,最常见的情况是触发 ,也就是更新了一个表会触发对别的表的处理,而这就是对企业逻辑业务的实现。所以你的思路一定要考虑是否实用于现实。另外 ado 的确支持多个表的自动更新,要将provider的resovetodataset(好象是这么拼:))设为true相关内容可以看ado/mts那本书还有你打算自己写一个对delta进行处理的方法?难 也不会比borland写的好 何必呢 打消吧 在他的基础上就可以处理大部分问题了
对于单个表,As_ApplyUpdates方法就可以更新!
对于主从表,通过OwnerData参数传递必要的参数(包括从表查询语句,主键,外键等),我的应用服务器都是这样写的,如需要例子,就发邮件至[email protected]。
to 猛禽
是的,对于这个问题我就是为了三层而三层,我不想在服务器端放大量的控件,同时我也不想在服务器端写大量的method;所以就这样了,我觉得,三层中客户端能处理的尽量客户端处理,我打算三层中各个层都负担一部分处理功能,想像能负载均摊。愿听老兄你关于三层的架构的指点。
var
ErrorCount :Integer;
begin
dsp.ApplyUpdate(Delta, 0, ErrorCount);
if ErrorCount <> 0 then
raise Exception.Create(FLastError); // FLastError 是对像一个私有方法
end;在 dsp 的 OnUpdateError 中写到
begin
FLastError := E.Message;
end;差不多就是这意思了
猛禽和太可怕
关于单表的更新,我已经解决了,我现在考虑多表的解决方式(据说ado有自动更新的功能,我没有试验过,要不又得自己处理代码了),我只是想用通用的方法,提高生产率。
关于业务逻辑在中间层处理的问题,我原来打算放在我的系统中用com+处理,可是这样系统充分发挥应用服务器的功能,可是我觉得对于我这个只有几万块钱的项目没有必要搞的那么复杂。可是对于想建立各个功能对象在remoteDM的情况下,如何建立企业对象呢?我是用了一个公共的remoteDM,然后用了几个子remoteDM(属于子系统),公共方法在公共的RemoteDm,对于具体业务的封装用在子remoteDM中;请问这样做有何不妥?
我的客户端用了一个公共socekt然后用shareconent,能用服务器方法的,我尽量写方法。
其实我也很想象此com+那样多建立相关的业务处理对象和功能控制对象,可是我目前的系统用不著阿。
愿听各位高见!
谢谢各位!分可以再开窗口加的!
身体健康!