大概环境:ms sql server2000做数据库,百个以上的数据表.客户端用ADO.
因需要,可能考虑将以前一个大的exe或按部门或按业务类型 分成几个小的exe,每个exe打开各自需要的表.但其中有些基础表是每个exe都必需的,如产品表(还有其他一些表哦),且记录也很多吧。这时问题就来了,当用户需要同时打开2个以上的exe时,难道每个exe都同时各自打开一个产品表吗? 能有什么方法实现将ADO表跨进程的共享?

解决方案 »

  1.   

    你应该换个思路。
    做成多层的。把登录和连接做成DCOM。
      

  2.   

    同意Pazee,另外不做多层也可以的,就算使用了DCOM技术或者Midas技术也不一定是3层的.而且用delphi封装这些技术很容易的.
      

  3.   

    个人认为应该与层次无关。就算做多层的但exe还是要分开几个,关键是那几个基本表主要目的是一次打开永久使用(在关闭exe之前),假设有 5个exe打开同一个表,内存里就有打开了5次,且完全相同。其实我需要的是能不能将1个打开的Ado表在内存里能供多个进程共享,且能当成普通的DataSet一样来使用?
      

  4.   

    恐怕作不到诶,Session是单独的
      

  5.   

    to 楼主:delphi 的MIDAS 就能满足,你把数据库连接和登陆做成DCOM,然后再DCOM里面打开这个表,个个连接共享这个连接就行了。DCOM提供的通讯方式是非常简单有效的,非常适合你这东西。
    你看看MIDAS的资料,MIDAS有很多连接方式,完全可以做到你的要求。我个人认为这个做法是成本最低的。