我们有一个Access数据库拆分的前端/后端,它经常损坏(由于各种原因;不良的体系结构,不良的代码,过多的用户,缓慢的网络等等,我们目前正在SQL Server中进行重写)。通常,发生这种情况时,管理员会通过电子邮件向所有员工发送电子邮件,并要求他们退出前端以及链接到后端的任何其他文件(例如,Excel中的某些报告已与其连接),因此我们可以打开数据库并使其自动压缩/当检测到其损坏状态时进行修复。
将用户带出系统就像放牧猫一样,我们并不总是能够及时地做到这一点。我实现了一个表单计时器事件,该事件检查第3个DB是否应保持打开状态的标志,其思想是在需要关闭前端时将标志设置为false。这似乎是有效的,但我无法确定它是否可以在100%的安装中正常运行,因为有时我们仍然会遇到该文件被锁定的情况。这可能是由于Excel报告,尽管很少查看。
最近,我不是在等待人们退出,而是在打开损坏的数据库之前先制作了一个副本,修复了该副本,然后在修复完成后用复制的文件覆盖了原始数据库。这似乎运作良好。
我的问题是:覆盖后端有什么问题?它会引起任何无法立即发现的问题吗?我已经做了几个星期了,还没有发现任何问题,但这只是一种不好的做法。例如锁定文件会怎样?会自动更新吗?
不多,因为最坏的情况已经发生。