我在将一个原来的两层结构的系统升级到三层应用时,遇到的第一个关键问题,请各位高手帮忙!
1.原系统中数据库连接用ADOConnectin,并且根据用户的选择需要连接不同的数据库。
2.原系统中为每个子系统分别建立不同的数据模块,共有5个数据模块,共用一个用户选择的数据连接。我想依据原系统的结构做最少的改动来建立中间层,我的想法如下:
1.建立一个本地数据模块用于管理数据库的连接(TAADOConnectin),用户选择不同的数据库来确定连接数据库的字串(CONNECTINGSTR)。
2.使用原来的5个数据模块来共享连接。
3.建立一个远程数据模块来输出数据接口,即用TDataSetProvider来输出接口。但是这样设计后,用户就不能选择要连接的数据库,因为数据连接是5个数据模块和远程数据模块共享的,每个用户连接都会创建一个中间层的实例,这样就作不到用户可以选择要连接的数据库的功能了,TADOConnection也没有类是TSession的控件来管理数据连接不知该怎么解决!

解决方案 »

  1.   

    你可以使用多实例的服务器,而且在服务器的COM接口中声明一个可以选择数据库连接的方法。
      

  2.   

    把 ADOConnection 放在 远程数据模块上,添加一个接口方法用于设置连接字符串。
      

  3.   

    同意  snowfog(秋风舞)  的方法;可以写进一个Switch来选择。
      

  4.   

    我呢虽是一个DELPHI低手,但我研究程序很投入,这个问题我想了想我觉得可以这样做,就是服务器端用五个实例分别连接五个模块对应的数据库,也正如楼上的所讲在服务器端建立一个连接数据库的接口,然后根据客户端的需求时行连接,也许这不是个很好的方法,但我想这个能解决问题,而且会条理比较清楚一点,一点小看法!^_^