asp网站在读写access数据库的时候 网站下所有asp网页都没法打开
asp网站在读写access数据库的时候网站下所有asp网页都没法打开,而html网页可以正常打开,当读写完毕以后,asp网页可以正常打开,这是因为什么,有什么解决办法?...
asp网站在读写access数据库的时候 网站下所有asp网页都没法打开,而html网页可以正常打开,当读写完毕以后,asp网页可以正常打开,这是因为什么,有什么解决办法?
展开
1个回答
展开全部
ACCESS本身属于单机数据库,用作网络数据库不是它的强项,当它编辑某条记录时会自动锁定该条记录,其他用户就无法打开该条记录,只有等编辑者调用Update更新后才能打开。
通过优化程序可以解决或者缓解这种状况:
1、打开数据表时,LockType参数最好不要用adLockPessimistic(2),要用adLockOptimistic(3),前者在一开始编辑的时候就会锁定记录,后者则只有在调用Update的瞬间才锁定记录,这样就大大降低了冲突的可能性,不过要注意这有可能会造成数据不同步的问题;
2、数据表要坚持使用完就立刻关闭的原则。如果要执行花时较长的操作,可以把记录集转储到数组,然后关闭数据表后再来进行后续操作。也就是说尽量减少数据表打开的时间,给其他用户的连接留条活路;
3、通常情况下多个用户在同一时刻读写同一条记录的情况是不多见的,所以最根本的问题仍然出在你的代码上,这个就要靠你自己去检查了;
4、还有一种情况,就是当某个用户正在对数据库进行结构调整(如增删改字段)、压缩数据库、删除数据表等系统级的操作时,其他用户是肯定无法访问的,因为这是必须的,否则就会造成数据不同步甚至整个数据库崩溃的情况。
补充说明:真正的网络数据库是SQL数据库,如MSSQL、MySQL等,同时几十万用户访问都没问题,当然也要视服务器的情况而定。
通过优化程序可以解决或者缓解这种状况:
1、打开数据表时,LockType参数最好不要用adLockPessimistic(2),要用adLockOptimistic(3),前者在一开始编辑的时候就会锁定记录,后者则只有在调用Update的瞬间才锁定记录,这样就大大降低了冲突的可能性,不过要注意这有可能会造成数据不同步的问题;
2、数据表要坚持使用完就立刻关闭的原则。如果要执行花时较长的操作,可以把记录集转储到数组,然后关闭数据表后再来进行后续操作。也就是说尽量减少数据表打开的时间,给其他用户的连接留条活路;
3、通常情况下多个用户在同一时刻读写同一条记录的情况是不多见的,所以最根本的问题仍然出在你的代码上,这个就要靠你自己去检查了;
4、还有一种情况,就是当某个用户正在对数据库进行结构调整(如增删改字段)、压缩数据库、删除数据表等系统级的操作时,其他用户是肯定无法访问的,因为这是必须的,否则就会造成数据不同步甚至整个数据库崩溃的情况。
补充说明:真正的网络数据库是SQL数据库,如MSSQL、MySQL等,同时几十万用户访问都没问题,当然也要视服务器的情况而定。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询