老板催的急,之前软件用二层结构写的,现在客户端一多,速度就慢,客户投诉太厉害,老板下了死命令,给我限期解决,希望各位高手给个例程,能够从数据库读取recoderset,然后返回给客户端调用的,,先谢谢大家了。 

解决方案 »

  1.   

    楼上说的对啊,LZ的问题不是层的问题....
    如果单纯说速度,C/S构架最直接了,应该是最快的了....
      

  2.   

    通常三层是指“表现层”、“中间业务层”、“数据访问层”。其中:表现层:位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。中间业务层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。中间业务层也可以包括一些对“商业逻辑”描述代码在里面。数据访问层:仅实现对数据的保存和读取操作。数据访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。个人认为,相对于传统的C/S模式,三层的扩充性,维护性,重用性好,优势在于系统的升级和维护,特别是对于大型系统VB实现中间层,可以用服务口在组件,可以用web服务等等,网上有现成示例,可以搜索一下....
      

  3.   

    修改一下,VB实现中间层,可以用服务器组件,可以用web服务等等,网上有现成示例,可以搜索一下.... 
      

  4.   

    从两层转移到三层,并不是简简单单就能够实现的,比如你之前所使用的Recordset等等之类的是无法直接使用的。个人建议不要做这种无谓的思考。把重心放在解决现实存在的问题当中。比如优化数据库,我想这应该是最为关键的,然后优化流程,优化编码,这也是你短时间所能够做得到,并且能够有显著成效的。对于三层来讲,说起来是很简单,客户端做界面,服务器做成ActiveX DLL挂到COM+当中进行管理,客户端使用Rds.DataSpace进行远程过程调用,在ActiveX DLL连接数据库完成运算,并把必要的结果返回到客户端...但是真要做起来,那麻烦不是一点点。比如远程过程调用当中的权限问题,用户(客户端)状态等信息的保存问题,你总不能让用户不需要登录就使用系统吧?也不可能让用户每做一个操作都登录一次吧?并且还有一个更重要的就是,我们常说的是,多一层就多一重复杂度,多一层风险,多一层的资源消耗,包括从DB到AP到Client这样多级转发所带来的消耗等等。这一切,我想应该不是目前你所能够想象得到的。
      

  5.   

    我怀疑你是弄错了,数据库慢那得从数据库的架构去研究啊,数据库上有好多类似的成功解决案例的,随便告诉你一个,上去看看,www.grqsh.com
      

  6.   

    除了8楼说和大家说的以外,还有单纯用VB的ActiveX DLL来写中间层服务组件,用句玩笑话:会让你晕菜的....
    当然不是写代码的难度,是布置 维护 升级及为不方便...
      

  7.   

    我原来公司的ERP系统就是用的ActiveX DLL,并不存在任何包括如效率和性能上的瓶颈问题。
      

  8.   

    我原来公司的ERP系统就是用的ActiveX DLL,并不存在任何包括如效率和性能上的瓶颈问题。
    --------------
    我不是说效率和性能问题,而是升级维护方面的问题,如果服务器组件作修改, 要重新配置每个客户端,相对其它方式的中间层而言(比如web services),显得及为不便...
      

  9.   

    服务器修改,只需要使用二进制兼容模式编译或者使用显式的IDL来描述相关的接口。
      

  10.   

    我所能想得到的,关于升级维护所带来的麻烦无外乎这些。当然还可以使用IDispatch接口来调用。