- 论坛徽章:
- 0
|
我碰到一个问题,网上查找的情况和我类似,但是我用的是API,不是ODBC所以请教各位大侠应该怎么办
以下是网上的答案
:各位好,
在使用mysql时,遇到一个棘手的问题,请教一下大家,问题如下:
我的应用要频繁访问mysql, 例如,用户登录时的密码验证等, 因为访问的量比较大, 我在程序中建立了mysql的连接池,当应用程序收到一个验证请求时,首先建立一个新的线程,然后这个线程从连接池获取一个连接,然后在这个连接上面做一些查询操作。我的应用是通过ODBC接口连接的MySQL数据库。
问题来了, 我的应用启动后,如果在mysql客户端update或insert了数据库中的数据, 但这时应用程序里面的每个连接查询出来的仍然是老的数据,只用重启应用后,才能看得到新的数据。
我首先怀疑是mysql的缓冲区问题, 查看相关资料,说是做update或insert操作会清楚缓冲区的内容,这个应该是没有问题的。
然后, 又怀疑是程序问题,尝试了n中方法,还是同样的结果。
请问,有没有碰到的类似问题的朋友,或请高手指点一下,多谢。
如果在每次查询数据前,重新连接数据库,是可以解决查询不到最新数据的问题, 但性能上是不允许的,每次连接占用了太多的时间。
搞定了,设置connection的一个属性就可以了
SQLSetConnectOption(m_hdbc, SQL_TXN_ISOLATION, SQL_TXN_READ_COMMITTED);
结贴 |
|