假设数据量不是很大,那么,程序里不考虑分段取数据的问题。
假设客户端数量巨多,那么,就要考虑数据库连接数的问题。你的数据库服务器支持不了太多的数据库连接的。这个时候,就可以采用COM+来解决问题了。其实李维那本讲COM+的书讲得很不错的,只不过需要多读几遍才能真正吃透。比如,在DELPHI里NEW一个MTS数据模块,你就已经有了一个COM+对象了。因为客户端很多,因此不能采用普通的MIDAS APP SERVER那种做法,让每个客户端一上来就用DCOMCONNECTION去连接这个COM+对象。否则,有100个客户,就有100个连接,COM+对象也承受不起啊。这时候,你需要在客户端取数据或者提交数据的时候,才连接COM+对象!取数据或提交数据一完成,客户端就和COM+对象断开。这个COM+对象当然要做成无状态对象,那么,它就立即可以服务下一个客户了。当然,要把它做成POOL的。否则客户端一断开,它就自己消灭掉了。另一个客户连进来,还得重新CREATE一遍,效率当然就低了。
建议你自己做一个简单的COM+对象,然后在WINDOWS的组件服务里去观察这个COM+跑起来的情况以及POOL的情况。这样才有感性认识。
至于DCOM,它好象没有POOL的功能。因此客户端一多,就有问题了。
回头再说数据量很大的情况。比如你的库里一个表有10万条记录,你用SELECT * FROM YOURTABLE的方式取,一下取出10万条给客户端,COM+对象被累死,网络传输也被堵死,客户端等待数据传完,1分钟都不反应象死机一样,肯定不好玩。这时候你当然要用自己的程序来解决这个问题。比如我这样写:SELECT TOP 100 * FROM YOURTABLE