一、原则
网络软件的最重要原则就是不能两个人同时修改一个数据。否则就会造成冲突,不知以谁的修改为准。
二、普通的解决办法
最普通的办法是在要修改数据时将数据表以独占方式打开,所谓“独占”就是使得数据只能自己使用,而别人不能使用,既不能修改,也不能查看。独占打开表的命令是在 use 命令中加 exclusive 子句,比如:
use rsda exclusive
这样就不会出现两个人同时修改一个数据的情况了。
三、共享数据
如果您只是查看数据,而不进行修改,那么您应该以共享方式打开表,否则别人也就没办法查看数据了,如果大家都是查看,不会有任何的冲突发生,即使查看的是同一个数据。
共享方式打开表的命令是 use ... share ,比如:
use rsda share
对于数据库也是一样的处理:
open database ... share
独占打开则是:
open database ... exclusive
四、友好的提示
如果您以独占方式打开了表,别人无论用独占或共享方式打开表都会出错,错误是“不能存取文件”,错误代码是1705;另外如果有人以共享方式打开了表,其它人试图以独占方式再打开,也会出现同样的错误。
如果在程序中出现这样的错误,可能使操作者莫名其秒,如果能给出比较友好的提示就好了,方法是用 on error 语句捕捉错误,一旦捕捉到错误即给出一个友好的提示,比如在需要共享打开数据时:
on error err=error() *上面这条就是捕捉错误的陷井,如在下面任何地方出现错误就将错误代码存入err变量,并不显示错误。 use rsda share &&如果这时出现错误,错误代码就会存入err,并且表不会打开,也不会出现错误提示。 if err=1705 &&如果错误代码是1705 *给出自己的提示 messagebox(@#数据正在被其它人修改,您暂时不能使用,请稍后再试。@#,16,@#注意@#) endif on error &&取消捕捉错误 |