客户端用vb
利用DSN,每个客户端都是一样的DSN设置,即同一用户名连接Mysql
那么多客户端同时应用的时候,就会出现该用户的多个连接
这样做会不会有问题?
如果会有问题,一般采取什么样的方法比较好?
实际上我是在实际用的时候,会出现数据库不能访问的错误,或者too many users的错误!
谢谢
13 个解决方案
#1
可以使用cs结构,通过服务器来控制访问的同步。但是工作量大。
#2
也就是说这么做不行咯?
俺是新手,您的回答比较摸不着头脑呀。。。。
俺是新手,您的回答比较摸不着头脑呀。。。。
#3
too many users应该是后台有控制最多用户不能超过多少个。
你看看SQL中能不能设置。
你同时有多少台客户端?>50台吗?
你看看SQL中能不能设置。
你同时有多少台客户端?>50台吗?
#4
看看mysql中有没有连接数的限制,如果不能满足要求说明mySQL不能在此应用。
#5
你看看SQL中能不能设置-------已经设置成了100的。应该够的呀。
我就5台就出了这种情况,所以想问问的。
另外,不好意思,我的帖子发错了的,本来想发在VB栏的
所以如果可能的话,请在VB方面给与指导!
再次感谢!
我就5台就出了这种情况,所以想问问的。
另外,不好意思,我的帖子发错了的,本来想发在VB栏的
所以如果可能的话,请在VB方面给与指导!
再次感谢!
#6
呵呵,我的表达能力不行,应该是最大连接数限制,zhaolaoxin is right.
应该不是因为你一个用户上了n次,而是因为后台数据库一次不支持这么多连接。
看看能不能更改最大连接数.
应该不是因为你一个用户上了n次,而是因为后台数据库一次不支持这么多连接。
看看能不能更改最大连接数.
#7
那是因为mysql配置的问题!
#8
哦,那就是你一台前台建立了多个连接了。我不知道VB下是怎么做的。
你应该打开一个连接,然后程序中其他打开操作都通过这个连接进行。就是复用。
用VC的话,应该是一个CDatabase.Open,然后每个CRecordset都复用这个CDatabase,这样你一台客户机在后台只算一次连接.
如果没用复用,一个CRecordset.Open就算一次连接,一台前台可能会开二三十个连接。这样,很快就too many usrs
你应该打开一个连接,然后程序中其他打开操作都通过这个连接进行。就是复用。
用VC的话,应该是一个CDatabase.Open,然后每个CRecordset都复用这个CDatabase,这样你一台客户机在后台只算一次连接.
如果没用复用,一个CRecordset.Open就算一次连接,一台前台可能会开二三十个连接。这样,很快就too many usrs
#9
应该是前台程序没写好,打开连接数太多了,去VB的数据库版问看看吧。
#10
实际上如果我要自己在程序里查询的话,用的是一个全局的connection,但是我还有好多控件,例如很多grid用来输入数据,这样就有了很多adodc,每一个adodc我都是直接在属性里面连接到我的dsn,会不会跟这个有关?
在马上就要交货的不利局面下,我应该如何改比较省事快捷?
用户倒是好说话,一是规模很小(5,6个人),数据也不是那么需要安全,但要按时交货
在马上就要交货的不利局面下,我应该如何改比较省事快捷?
用户倒是好说话,一是规模很小(5,6个人),数据也不是那么需要安全,但要按时交货
#11
进行相应的数据库操作后,要关闭对应的连接。如果没有的话,程序运行太久,会一直建立新连接,而没关闭旧连接,就会too many users
#12
可是我用ADODC的话,我也不知道该在什么时候关闭呀。
苦恼。。。
苦恼。。。
#13
恩,估计是你一个控件就一个连接,所以一个前台程序就有很多连接了。
如果,你一个界面有很多这种控件,就比较麻烦。
如果你同时几个程序都在用这个界面,就会太多的连接数。
问看看VB版,能不能把几个控件的连接都改成同一个连接出去。
如果,你一个界面有很多这种控件,就比较麻烦。
如果你同时几个程序都在用这个界面,就会太多的连接数。
问看看VB版,能不能把几个控件的连接都改成同一个连接出去。
#1
可以使用cs结构,通过服务器来控制访问的同步。但是工作量大。
#2
也就是说这么做不行咯?
俺是新手,您的回答比较摸不着头脑呀。。。。
俺是新手,您的回答比较摸不着头脑呀。。。。
#3
too many users应该是后台有控制最多用户不能超过多少个。
你看看SQL中能不能设置。
你同时有多少台客户端?>50台吗?
你看看SQL中能不能设置。
你同时有多少台客户端?>50台吗?
#4
看看mysql中有没有连接数的限制,如果不能满足要求说明mySQL不能在此应用。
#5
你看看SQL中能不能设置-------已经设置成了100的。应该够的呀。
我就5台就出了这种情况,所以想问问的。
另外,不好意思,我的帖子发错了的,本来想发在VB栏的
所以如果可能的话,请在VB方面给与指导!
再次感谢!
我就5台就出了这种情况,所以想问问的。
另外,不好意思,我的帖子发错了的,本来想发在VB栏的
所以如果可能的话,请在VB方面给与指导!
再次感谢!
#6
呵呵,我的表达能力不行,应该是最大连接数限制,zhaolaoxin is right.
应该不是因为你一个用户上了n次,而是因为后台数据库一次不支持这么多连接。
看看能不能更改最大连接数.
应该不是因为你一个用户上了n次,而是因为后台数据库一次不支持这么多连接。
看看能不能更改最大连接数.
#7
那是因为mysql配置的问题!
#8
哦,那就是你一台前台建立了多个连接了。我不知道VB下是怎么做的。
你应该打开一个连接,然后程序中其他打开操作都通过这个连接进行。就是复用。
用VC的话,应该是一个CDatabase.Open,然后每个CRecordset都复用这个CDatabase,这样你一台客户机在后台只算一次连接.
如果没用复用,一个CRecordset.Open就算一次连接,一台前台可能会开二三十个连接。这样,很快就too many usrs
你应该打开一个连接,然后程序中其他打开操作都通过这个连接进行。就是复用。
用VC的话,应该是一个CDatabase.Open,然后每个CRecordset都复用这个CDatabase,这样你一台客户机在后台只算一次连接.
如果没用复用,一个CRecordset.Open就算一次连接,一台前台可能会开二三十个连接。这样,很快就too many usrs
#9
应该是前台程序没写好,打开连接数太多了,去VB的数据库版问看看吧。
#10
实际上如果我要自己在程序里查询的话,用的是一个全局的connection,但是我还有好多控件,例如很多grid用来输入数据,这样就有了很多adodc,每一个adodc我都是直接在属性里面连接到我的dsn,会不会跟这个有关?
在马上就要交货的不利局面下,我应该如何改比较省事快捷?
用户倒是好说话,一是规模很小(5,6个人),数据也不是那么需要安全,但要按时交货
在马上就要交货的不利局面下,我应该如何改比较省事快捷?
用户倒是好说话,一是规模很小(5,6个人),数据也不是那么需要安全,但要按时交货
#11
进行相应的数据库操作后,要关闭对应的连接。如果没有的话,程序运行太久,会一直建立新连接,而没关闭旧连接,就会too many users
#12
可是我用ADODC的话,我也不知道该在什么时候关闭呀。
苦恼。。。
苦恼。。。
#13
恩,估计是你一个控件就一个连接,所以一个前台程序就有很多连接了。
如果,你一个界面有很多这种控件,就比较麻烦。
如果你同时几个程序都在用这个界面,就会太多的连接数。
问看看VB版,能不能把几个控件的连接都改成同一个连接出去。
如果,你一个界面有很多这种控件,就比较麻烦。
如果你同时几个程序都在用这个界面,就会太多的连接数。
问看看VB版,能不能把几个控件的连接都改成同一个连接出去。