这样写客户端会不会有问题?---------------在线等

时间:2022-09-11 13:15:32
我在服务器用MySQL+Windows2000,除此之外啥也没有

客户端用vb
利用DSN,每个客户端都是一样的DSN设置,即同一用户名连接Mysql

那么多客户端同时应用的时候,就会出现该用户的多个连接

这样做会不会有问题?

如果会有问题,一般采取什么样的方法比较好?

实际上我是在实际用的时候,会出现数据库不能访问的错误,或者too many users的错误!

谢谢

13 个解决方案

#1


可以使用cs结构,通过服务器来控制访问的同步。但是工作量大。

#2


也就是说这么做不行咯?

俺是新手,您的回答比较摸不着头脑呀。。。。

#3


too many users应该是后台有控制最多用户不能超过多少个。
你看看SQL中能不能设置。

你同时有多少台客户端?>50台吗?

#4


看看mysql中有没有连接数的限制,如果不能满足要求说明mySQL不能在此应用。

#5


你看看SQL中能不能设置-------已经设置成了100的。应该够的呀。
我就5台就出了这种情况,所以想问问的。

另外,不好意思,我的帖子发错了的,本来想发在VB栏的
所以如果可能的话,请在VB方面给与指导!

再次感谢!

#6


呵呵,我的表达能力不行,应该是最大连接数限制,zhaolaoxin is right.

应该不是因为你一个用户上了n次,而是因为后台数据库一次不支持这么多连接。

看看能不能更改最大连接数.

#7


那是因为mysql配置的问题!

#8


哦,那就是你一台前台建立了多个连接了。我不知道VB下是怎么做的。

你应该打开一个连接,然后程序中其他打开操作都通过这个连接进行。就是复用。

用VC的话,应该是一个CDatabase.Open,然后每个CRecordset都复用这个CDatabase,这样你一台客户机在后台只算一次连接.
如果没用复用,一个CRecordset.Open就算一次连接,一台前台可能会开二三十个连接。这样,很快就too many usrs

#9


应该是前台程序没写好,打开连接数太多了,去VB的数据库版问看看吧。

#10


实际上如果我要自己在程序里查询的话,用的是一个全局的connection,但是我还有好多控件,例如很多grid用来输入数据,这样就有了很多adodc,每一个adodc我都是直接在属性里面连接到我的dsn,会不会跟这个有关?

在马上就要交货的不利局面下,我应该如何改比较省事快捷?

用户倒是好说话,一是规模很小(5,6个人),数据也不是那么需要安全,但要按时交货

#11


进行相应的数据库操作后,要关闭对应的连接。如果没有的话,程序运行太久,会一直建立新连接,而没关闭旧连接,就会too many users

#12


可是我用ADODC的话,我也不知道该在什么时候关闭呀。
苦恼。。。

#13


恩,估计是你一个控件就一个连接,所以一个前台程序就有很多连接了。

如果,你一个界面有很多这种控件,就比较麻烦。

如果你同时几个程序都在用这个界面,就会太多的连接数。

问看看VB版,能不能把几个控件的连接都改成同一个连接出去。

#1


可以使用cs结构,通过服务器来控制访问的同步。但是工作量大。

#2


也就是说这么做不行咯?

俺是新手,您的回答比较摸不着头脑呀。。。。

#3


too many users应该是后台有控制最多用户不能超过多少个。
你看看SQL中能不能设置。

你同时有多少台客户端?>50台吗?

#4


看看mysql中有没有连接数的限制,如果不能满足要求说明mySQL不能在此应用。

#5


你看看SQL中能不能设置-------已经设置成了100的。应该够的呀。
我就5台就出了这种情况,所以想问问的。

另外,不好意思,我的帖子发错了的,本来想发在VB栏的
所以如果可能的话,请在VB方面给与指导!

再次感谢!

#6


呵呵,我的表达能力不行,应该是最大连接数限制,zhaolaoxin is right.

应该不是因为你一个用户上了n次,而是因为后台数据库一次不支持这么多连接。

看看能不能更改最大连接数.

#7


那是因为mysql配置的问题!

#8


哦,那就是你一台前台建立了多个连接了。我不知道VB下是怎么做的。

你应该打开一个连接,然后程序中其他打开操作都通过这个连接进行。就是复用。

用VC的话,应该是一个CDatabase.Open,然后每个CRecordset都复用这个CDatabase,这样你一台客户机在后台只算一次连接.
如果没用复用,一个CRecordset.Open就算一次连接,一台前台可能会开二三十个连接。这样,很快就too many usrs

#9


应该是前台程序没写好,打开连接数太多了,去VB的数据库版问看看吧。

#10


实际上如果我要自己在程序里查询的话,用的是一个全局的connection,但是我还有好多控件,例如很多grid用来输入数据,这样就有了很多adodc,每一个adodc我都是直接在属性里面连接到我的dsn,会不会跟这个有关?

在马上就要交货的不利局面下,我应该如何改比较省事快捷?

用户倒是好说话,一是规模很小(5,6个人),数据也不是那么需要安全,但要按时交货

#11


进行相应的数据库操作后,要关闭对应的连接。如果没有的话,程序运行太久,会一直建立新连接,而没关闭旧连接,就会too many users

#12


可是我用ADODC的话,我也不知道该在什么时候关闭呀。
苦恼。。。

#13


恩,估计是你一个控件就一个连接,所以一个前台程序就有很多连接了。

如果,你一个界面有很多这种控件,就比较麻烦。

如果你同时几个程序都在用这个界面,就会太多的连接数。

问看看VB版,能不能把几个控件的连接都改成同一个连接出去。