主题:怎样才能使二个工作端同时输入数据?
各位师付我有一个简单的仓库软件放在服务器上: 当只有一个客户端输入数据时:保存的数据正确, 但是当二个或三个客户端同时输入数据时, 保存的数量就有问题了(数据头(ck_cp_i.dbf)和数据明细(ck_cp_ix.dbf) 混乱: 同一组数据,数据头是张三输入的, 明细是李四输入的), 而且表和表单之间只能直接相连
ck_cp_i.dbf 和ck_cp_ix.dbf二个表是通过字段bm_bh相关联。以下是表单输入界面的新增和保存代码:
if h_choice = 0
SELECT ck_cp_i
set order to bm_bh
go bott
l_bm_bh = '6'+PADL(alltrim(str(val(substr(ck_cp_i.bm_bh,2,8))+1,7)),7,'0')
APPEND BLANK
REPL ck_cp_i.BM_BH WITH L_BM_BH
select ck_cp_ix
append blank
REPL ck_cp_ix.BM_BH WITH L_BM_BH
thisform.setena &&h_choice = 1
THISFORM.REFRESH
thisform.lsc_tzd.setfocus
else
IF THISFORM.lrk_date.VALUE=ctod(" . . ") and EMPTY(THISFORM.lbz.VALUE) or EMPTY(thisform.lrk_what.Value) or EMPTY(thisform.lwei_dw.value) or EMPTY(thisform.lsc_dw.Value)
=MESSAGEBOX("日期数据缺少,不能存盘!",48,"注意")
RETURN
ENDIF
select ck_cp_ix
dele all for empty(ck_cp_ix.ck_wp) OR ck_cp_ix.bao_num = 0
begin transaction
if tableupdate(.t.,.f.,"ck_cp_i")
if tableupdate(.t.,.f.,"ck_cp_ix")
else
unlock all
rollback
=messagebox("成品明细不能保存,请稍候重试!")
ENDIF
ELSE
ROLLBACK
unlock all
=messagebox("成品主库不能保存,请稍候重试!")
ENDIF
ENDIF