回 帖 发 新 帖 刷新版面

主题:怎样才能使二个工作端同时输入数据?

各位师付我有一个简单的仓库软件放在服务器上: 当只有一个客户端输入数据时:保存的数据正确, 但是当二个或三个客户端同时输入数据时, 保存的数量就有问题了(数据头(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              

回复列表 (共2个回复)

沙发

主表设id,与副表id建立关联啊.

板凳

很不错呢------------------------------- [url=http://www.sacchanelpascher2013.com]sac chanel[/url] ,[url=http://www.chaussuresgucci2013.com]chaussures gucci[/url] , [url=http://www.chaussureslacostehomme.com]chaussures lacoste[/url] , [url=http://www.chaussuresprada2013.com]chaussures prada[/url] , [url=http://www.zapatosprada.es]zapatos prada[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册