-- 作者:tommyfung
-- 发布时间:2014/5/5 19:19:00
-- Datatable("xx").save() 数据一致问题
数据环境 : 远程连接 ( VPN )
5-6发布 数据库事务 解决后台 数据一致问题
但在前台的如何解决 ?
以下代码为需一致更新以下数据表 :
分配备料单( PRWIRH, PRWIRD ),
物料主档 (GBITEM),
物料分仓库存(ICBALN)
交易帐(ICMOVH, ICMOVD)
问题 : 由於是远程数据, 有时网络速度不稳定, 致 "数据超时", 请教如何有效处理 ?
以下是主要更新代码 :
Dim drx As Row=Tables("PRWIRH").Current drx("STATUS") = 3 DataTables("PRWIRH").save()
Dim dry As Row=Tables("PRWIRD").Current Dim dra As Row=Tables("ICBALN").Current stno = Functions.Execute("Get_STNO") \' Get and Update the EPN STNO Dim hrec As DataRow = DataTables("ICMOVH").AddNew() hrec("REF_NO") = stno hrec("TRAN_TYPE") = "MVMT" hrec("MOVE_DATE") = Date.Today hrec("VALUE_DATE") = Date.Today hrec("POSTED") = "N" hrec("POSTED_STEP1") = "N" hrec("FLOW_TYPE") = "T" hrec("MOVE_TYPE") = "DirTrn" hrec("LOC_FROM") = dry("Loc_from") hrec("LOC_TO") = dry("Loc_to") hrec("REFERENCE") = dry("Ref_no") hrec("LOG_NO") = 0 hrec("SOURCE_TYPE") = "Entry" hrec("FINAL") = "N" hrec("BATCH_SELECT") = "N" hrec("GL_LINK") = "N" hrec("OWNER_BRANCH") = "01" hrec("SOURCE_BRANCH") = "01" hrec("FOLLOW_LIST") = "N" hrec("FROZEN") = "N" hrec("EXCLUDE_SCRAP") = "N" hrec("STEP_NO") = 0 hrec("PERIOD") = PERIOD hrec("FISCAL_YEAR") = FISCAL_YEAR hrec("PERIOD_NO") = PERIOD_NO hrec("CREATED_BY") = "EPN2" hrec("CREATED_DATE") = servertime hrec("REVISED_BY") = "EPN2" hrec("REVISED_DATE") = servertime If Functions.Execute("RequestDataTable","EPN数据","select * from prwird where POSTED = 1 AND FINISHED = 0 AND [Assign_Qty] > 0 And [LOC_FROM] = \'" & hrec("LOC_FROM") & "\' AND [LOC_TO] = \'" & hrec("LOC_TO") & "\'" & " And REVISED_BY=N\'" & Functions.Execute("GetChUser") & "\' And REVISED_DATE=\'" & Date.Today & "\'").DataRows.Count>0 Then DataTables("ICMOVH").Save() End If
\'Modify at 2013-09-09 DataTables("PRWIRD").LoadFilter = "POSTED = 1 AND FINISHED = 0 AND [Assign_Qty] > 0 And [LOC_FROM] = \'" & hrec("LOC_FROM") & "\' AND [LOC_TO] = \'" & hrec("LOC_TO") & "\'" & " And REVISED_BY=N\'" & Functions.Execute("GetChUser") & "\' And REVISED_DATE=\'" & Date.Today & "\'" DataTables("PRWIRD").Load If(Tables("PRWIRD").Rows.Count=0) Then MessageBox.Show("没有分配数量","提示",MessageBoxButtons.Ok,MessageBoxIcon.Information) DataTables("ICMOVH").RejectChanges() Return End If Functions.Execute("ModifyRecord","EPN数据","UPDATE ICMOVH SET CREATED_DATE=GETDATE(),REVISED_DATE=GETDATE() WHERE REF_NO=\'" & stno & "\'")
Dim LINENO As Integer = 1 Dim dri As DataRow Dim dt As DataTable \'Return For Each dr As DataRow In DataTables("PRWIRD").DataRows dri = DataTables("ICBALN").Find("[item_no] = \'"&dr("ITEM_NO") & "\' and [LOC] = \'" & dr("LOC_FROM") & "\'") If dri IsNot Nothing Then dri("QTY_COMMITTED") = dri("QTY_COMMITTED") + dr("ASSIGN_QTY") dri("QTY_RESERVED") = dri("QTY_RESERVED") - dr("ASSIGN_QTY") DataTables("ICBALN").Save() Else MessageBox.Show("Cannot write to ICBALN " & dr("Item_no")) Exit For End If
\' ** Update GBITEM cmd.CommandText = "Select * FROM {GBITEM} Where Item_no = \'" & dr("ITEM_NO") & "\'" \'注意要包括主键列 dt = cmd.ExecuteReader(True) \'注意可选参数设置为True
For Each drg As DataRow In dt.DataRows drg("QTY_COMMITTED") = drg("QTY_COMMITTED") + dr("ASSIGN_QTY") drg("QTY_RESERVED") = drg("QTY_RESERVED") - dr("ASSIGN_QTY") drg("QTY_NET_AVAILABLE")=drg("QTY_NET_AVAILABLE")-dr("ASSIGN_QTY") Next dt.Save()
Dim nrec As DataRow = DataTables("ICMOVD").AddNew() nrec("REF_NO") = stno nrec("LINE_NO") = lineno nrec("ITEM_NO") = dr("ITEM_NO") nrec("DESCRIPTION") = dr("DESCRIPTION") nrec("UOM") = dr("Uom") nrec("LOT_SIZE") = 1 nrec("LINE_REF") = dr("Job_no") nrec("QTY") = dr("Assign_Qty") nrec("BASE_QTY") = dr("Assign_qty") nrec("FINAL") = "N" nrec("FLOW_TYPE") = "T" nrec("ALLOC_METHOD") = "N" nrec("SOURCE_TYPE") = "Entry" nrec("SOURCE_ENTRY_NO") = 0 nrec("LOC_FROM") = dr("Loc_from") nrec("LOC_TO") = dr("Loc_to") dr("issued_qty") = dr("issued_qty") + dr("assign_qty") dr("assign_qty") = 0 If(Cstr(dr("st_no"))<>"") Then dr("st_no") = dr("st_no")+","+stno Else dr("st_no") =stno End If dr("Finished") = iif(dr("Need_Qty")-dr("Issued_qty")-dr("Assign_Qty") = 0,1,0) DataTables("ICMOVD").Save() dr.Save() lineno = lineno + 1 Next DataTables("PRWIRD").Save
[此贴子已经被作者于2014-5-5 19:25:54编辑过]
|