十万火急,三层开发中遇到的问题! ( 积分: 200 )

  • 主题发起人 主题发起人 goodfriend1
  • 开始时间 开始时间
G

goodfriend1

Unregistered / Unconfirmed
GUEST, unregistred user!
我在采用三层开发程序过程中,中间层采用ADOConnection连接,采用SocketConnection作为三层的客户端通讯组件,但现在我遇到的问题是,当客户端根据客户需要选择需要改变账套,即改变中间层的ADO连接字符串时,我程序要如何实现同步修改中间层的连接字串,达到对应不同账套的目的呢?谢谢!
同时,还有一个问题,请教各位,三层中,如果我改变了中间层的数据库连接,那是不是所有的连接都改变了,如果这样,那我怎么保证不同公司不同用户连接不同账套呢!
 
我在采用三层开发程序过程中,中间层采用ADOConnection连接,采用SocketConnection作为三层的客户端通讯组件,但现在我遇到的问题是,当客户端根据客户需要选择需要改变账套,即改变中间层的ADO连接字符串时,我程序要如何实现同步修改中间层的连接字串,达到对应不同账套的目的呢?谢谢!
同时,还有一个问题,请教各位,三层中,如果我改变了中间层的数据库连接,那是不是所有的连接都改变了,如果这样,那我怎么保证不同公司不同用户连接不同账套呢!
 
C:/Program Files/Borland/Delphi7/Demos/Midas/Pooler
 
客户端直接带着连接字符串通讯不就行了
 
具体如何操作呢?
假如,我已经获得对应的ADO字符串,那我要怎么改变中间层对应的ADOConnect值呢
 
为什么要改变ADOConnect,有几个数据库吗?
 
这个问题经常遇到,MIS系统,多账套,就要求改变对应的数据库链接!
 
放几个ADOConncetion,分别指向不同的数据库
 
.新账套客户要能自己手工创建,否则这样能解决什么问题啊!
 
不懂里面的流程。
我想不会是一个账套对应一个数据库吧?只是对应到不同的表
 
動態切換數據庫也就是改變連接串, 如果用到多線程則有點麻煩.
 
晕倒....你可能没遇过多公司多账套的情况吧!
 
有两种办法:
1.在中间层用IDTCPSERVER,客户端用IDTCPClient,当需要改变连接串时,由IDTCPClient发送给IDTCPSERVER让中间自己修改就是了.
2.在中间层用一表或临时表记录当前套帐信息,客户端维护修改之后中间层在afterpost等事件中处理就是了
 
每一个连接上来的用户都拥有一个自己的DataModule不就什么都解决了么,用户之间也就不会互相影响了。
 
AppServer: ADOConnection+ADODataSet+Provider
Client: SocketConnection+ClientDataSet
只要改变ADOConnection就行了,别的都不用改啊.
不知道楼主是不是这个意思?
还有,Delphi的ID套件好象不太稳定,不知道大家用的怎么样?
 
类似于codesmall
可以先在中间层建ini文件,其它关键字包有客户ip和ado连接字符串,当客户要修改时,首先根据ip判断,再决定是否修改ado字符串,
当然这要求在客户端能修改ado连接。
 
如果你使用的是远程数据模块,并且你的ADOCONNECTION是放在远程数据模块中,线程模式是线程套间(Apartment),那么每个连接使用的都是独立的远程数据模块,那你就可以更改连接字符串而不会影响其他连接。
 
如果是SQL SERVER就不需更改连接字串。可以这样访问数据库(master..表名)
 
其实这个很好解决,只需要在你点登陆也就是进入系统时,从客户端传连接字符串到中间层。这样中间层就可以根据不同的客户端传过来不同的字符串相连接。各客户间不会受影响。
 
后退
顶部