除了那些由微软 here列出的那些. 10 DBEngine.CompactDatabase Dbpath, DbTempPath, "", dbEncrypt20 Kill Dbpath30 Name DbTempPath As DbPath 上面的代码在很多安装中每天都在运行,但是很少有30行失败,我接到一个数
10 DBEngine.CompactDatabase Dbpath, DbTempPath, "", dbEncrypt 20 Kill Dbpath 30 Name DbTempPath As DbPath
上面的代码在很多安装中每天都在运行,但是很少有30行失败,我接到一个数据库缺失的调用.
今天我第一次看到它发生在自己身上并且引发了错误:
路径/文件访问错误(错误75)
但是,我不认为任何列出的原因适用于这种情况.
当这发生在今天的安装时,我重命名了临时文件并再次运行代码并再次发生错误.
(我认为它可能与硬件问题有关,因为制作文件副本需要很长时间.)
这里没有足够的信息可以说,但我的猜测是问题是你的KILL语句没有在NAME语句运行之前完成.它从来都不清楚,但似乎Windows NT文件系统可以选择异步实现某些文件操作(特别是对于大文件),因此即使VB6认为它是并转到了NAME声明.可能最好的办法是在开始使用NAME重命名之前,在KILL之后进行一些检查以确保文件实际上已经消失.