O
onedolph
Unregistered / Unconfirmed
GUEST, unregistred user!
咦,qizai也给分了,唉,给分的时候没注意,对不起大伙儿呀。
qizai是我注册的,只问过一个问题,完了已经给注销掉了,给了分也拿不到。
真是柳暗花明疑无路,一不小心,这么难的难题,都让我给解决了!
今天来,主要是告诉大家我的解决办法,以报答大家的热心支持。
这个问题困扰了我近一个月,经过N次试验,想了N种解决方案,都不能解决,
最后,问题竟然这么简单:
只要你不通过ClientdataSet的方法来调用,就没事了。
比如:不要调用ClientdataSet.open来取数据,不要用ClientDataSet.Execute来执行操作。
在服务器端引出一个接口函数(属性)返回需要的数据,
比如:function OpenData(sqlstr:widestring)levariant;
客户端调用时这样:ClientDataSet.data:=intf.Open(sqlstr);//intf是DataModal的借口
就行了。
负载过重就容易死的问题,主要是由于数据库连接太多引起的,
用Session Pool技术,稳定得不得了。
至于Garbage collection,暂时还没找到什么资料。
呵呵,我都差点买1G的内存了。还好没买。
qizai是我注册的,只问过一个问题,完了已经给注销掉了,给了分也拿不到。
真是柳暗花明疑无路,一不小心,这么难的难题,都让我给解决了!
今天来,主要是告诉大家我的解决办法,以报答大家的热心支持。
这个问题困扰了我近一个月,经过N次试验,想了N种解决方案,都不能解决,
最后,问题竟然这么简单:
只要你不通过ClientdataSet的方法来调用,就没事了。
比如:不要调用ClientdataSet.open来取数据,不要用ClientDataSet.Execute来执行操作。
在服务器端引出一个接口函数(属性)返回需要的数据,
比如:function OpenData(sqlstr:widestring)levariant;
客户端调用时这样:ClientDataSet.data:=intf.Open(sqlstr);//intf是DataModal的借口
就行了。
负载过重就容易死的问题,主要是由于数据库连接太多引起的,
用Session Pool技术,稳定得不得了。
至于Garbage collection,暂时还没找到什么资料。
呵呵,我都差点买1G的内存了。还好没买。