VFP中如何锁定已经修改的记录?

来源:百度知道 编辑:UC知道 时间:2024/06/08 10:57:17
表单是与一个表进行绑定的,如果修改表单的内容,那么表的内容将同步修改。如果重新重新对表进行导入并计算,将覆盖以前的内容,我想请问的是:如何锁定那些已经修改的记录?
回答一楼的:前面的那些话是我程序设定的功能,我现在很想知道最后一句话的功能怎么去实现.
回答二楼的:我说的锁定,意思就是说,重新导入数据后,那些以前曾经被修改过的记录,不能被覆盖掉,我想用一个字段专门存放该记录是否被修改过?但并不知道怎么去识别已经被修改,难道要逐条将这些记录与以前的记录比较吗?

不太明白。既然表单与表是绑定的,修改表单的内容,那么表的内容自然而然被修改,怎么又谈到“覆盖以前内容”?是不是这样的:将表先导到一个临时表中,表单是与这个临时表绑定的,修改临时表后要回写数据。既然是回写数据,为什么要“锁定那些已经修改的记录”?表达的不明确!你讲的“锁定”是什么意思?

还是不太明白。假定你的表a1,表单FORM1绑定了数据源A1,你在表单中修改了数据,等于直接修改A1,不存在以前数据。除非是有两个表,A1、A2,表A1是原表,A2是待修改的表,表单绑定A2,在正式确认修改之前,A2不向A1回写数据,那么你的程序可能是这样的:
USE A1
COPY TO A2
DO FORM FORM1
...
如果是这样的话,可以加以判断:
IF NOT FILE('A2.DBF') &&如果A2不存在
USE A1
COPY TO A2
ENDIF
在确认回写A1以后,删除A2:
ERASE A2.DBF
当然不能在表单中使用ERASE命令,因为数据源没有关闭,即A2处于打开状态。
可以在表单中定义一个全局变量BC,假定有两个按钮“保存”、“退出”,在保存的CLICK 事件中:
.....
BC=.T.
RELEASE THISFORM
退出的CLICK:
BC=.T.
RELEASE THISFORM
在表单的UNLOAD事件:
RETURN BC
在调用表单时
IF NOT FILE('A2.DBF') &&如果A2不存在
USE A1
COPY TO A2
ENDIF
DO FORM FORM1 TO PP
IF PP
ERASE A2.DBF
ENDIF

如果还不对,请你把问题讲清楚,还有设计思路。

恩?是这样吗?