拷贝mdb文件的时候,用的是FileCopy(strSource, strDestination).
但是出现了70:不能写入的错误。考虑到可能是数据库连接未断开的问题,所以我想改用下面的方法
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Kill strSource
fso.CopyFile strSource, strDestination但是别人提出来了这种方法可能导致2个mdb数据不一致的问题,因为数据库连接未断开,不能肯定拷贝之后会否有修改保存的动作。大家说说,上述担心存在吗?如果存在的话,该如何处理比较好呢?
但是出现了70:不能写入的错误。考虑到可能是数据库连接未断开的问题,所以我想改用下面的方法
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Kill strSource
fso.CopyFile strSource, strDestination但是别人提出来了这种方法可能导致2个mdb数据不一致的问题,因为数据库连接未断开,不能肯定拷贝之后会否有修改保存的动作。大家说说,上述担心存在吗?如果存在的话,该如何处理比较好呢?
出错估计与连接无关,看看在目标路径是否有写权限???????
写错了,是Kill strDestination。
目标路径有写权限。不明白以独占或者非独占方式打开连接对于FileCopy来讲有何差别,都是一样出现70错误,无法拷贝。我想 lsftest()没有明白我的意思。--〉rainstormmaster(暴风雨 v2.0) 用2进制方式读写文件就不会存在数据不一致的问题了吗?
其实这种担心是有必要的,但是,其实是很难解决的,因为我们无法得知,在你的程序退出之后,用户是否又通过其它方式修改了mdb文件.所以,你能做的就是在结束你的数据库操作的同时,备份文件
写错了,是Kill strDestination。
目标路径有写权限。不明白以独占或者非独占方式打开连接对于FileCopy来讲有何差别,都是一样出现70错误,无法拷贝。我想 lsftest()没有明白我的意思。
=====================================
举个例子吧:有一个c:\abc.mdb,如果你用普通的方式直接用access打开它,并且还打开了一个表,然后回到资源管理器,用一般复制文件得到方式把abc.mdb复制到d:\,这样是可行的。。
但如果你先打开access,在access的菜单中选“文件”,“打开”,选中abc.mdb后,在打开按钮旁边的小箭头下选“以独占方式打开”,那么再重复上面的复制操作就会出错了
//不能肯定拷贝之后会否有修改保存的动作。
其实这种担心是有必要的,但是,其实是很难解决的,因为我们无法得知,在你的程序退出之后,用户是否又通过其它方式修改了mdb文件.所以,你能做的就是在结束你的数据库操作的同时,备份文件
=================
没办法,access不像sql server之类,有事务等方式来保证同步。。
折冲办法可以在数据库内自己做一个标志判断数据的实时性。。