主题:这样锁定表对吗?
ck_cp_op.dbf 是表头, ck_cp_o.dbf是明细表, 它们是通过字段bm_bh相关联。 字段bm_bh是编号的意思( 二个表中都有该字段)
在多用户操作中,
因为有多用户同时在二个表中增加数据, 为了避免二个表中的数据不会混乱和相同编号的记录
因此我用下面蓝色的代码先把表头锁定, 当第二个用户同时增加记录时会出现('表被其他用户使用中')
请问我下面修改的对吗??? 蓝色的是我修改的代码?
if h_choice = 0 **增加数据
SELECT ck_cp_o
if flock('ck_cp_o') **锁定表头
set order to bm_bh
go bott
l_bm_bh = '6'+PADL(alltrim(str(val(substr(ck_cp_o.bm_bh,2,8))+1,7)),7,'0')
APPEND BLANK
REPL ck_cp_o.bm_bh WITH L_BM_BH
THISFORM.LABEL3.CAPTION = ck_cp_o.bm_bh
THISFORM.tck_date.VALUE = DTOC(DATE())
select ck_cp_op
append blank
REPL ck_cp_op.bm_bh WITH L_BM_BH
thisform.setena &&h_choice = 1
THISFORM.CONTAINER1.CONTAINER2.LABEL4.CAPTION = STR(0,6)
THISFORM.CONTAINER1.CONTAINER2.LABEL5.CAPTION = STR(0,4)
THISFORM.REFRESH
thisform.tdw_buy.setfocus
else
MESSAGEBIX('表被其他用户使用中')
endi
else
"存盘"代码为: tableupdate(.t.,.f.,"ck_cp_o")
tableupdate(.t.,.f.,"ck_cp_op")
rollback
unlock all 解除锁定
endi