從表ac23中取得位置號,顯示在sle7、8、9、10這4個字符框里,baa6是可用標志,如果更新成功,將baa6改成1,如果更新不成功,提示錯誤并回傳。
現在的問題是出現重復分配位置號,不知道應該怎么解決這個問題
dw_1.settransobject(sqlca)
s_sql="select id,baa1,baa2,baa3,baa4,baa5,baa6 from ac23 where baa5=2 and baa6=0 order by baa1,baa2,baa3,baa4"
dw_1.setsqlselect(s_sql)
dw_1.retrieve()
//
//
sle_7.text=string(dw_1.getitemnumber(1,'baa1'))
sle_8.text=string(dw_1.getitemnumber(1,'baa2'))
sle_9.text=string(dw_1.getitemnumber(1,'baa3'))
sle_11.text=string(dw_1.getitemnumber(1,'baa4'))
s_sql="update ac23 set baa6=1 where id="+string(dw_1.getitemnumber(1,'id'))+" and baa6=0"
EXECUTE IMMEDIATE :s_sql USING sqlca;
//如果更新記錄數為0,說明跟其他人取了同一個位置號
if sqlca.sqlnrows=0 then
messagebox('系統提示','分配位置號錯誤,請重試一次')
sle_7.text=''
sle_8.text=''
sle_9.text=''
sle_11.text=''
ROLLBACK;
return
end if
uj5u.com熱心網友回復:
通過DW的update屬性來控制并發問題。
where clause for update/delete 選key and updateable columns
key Modification 選use delete then insert
uj5u.com熱心網友回復:
因為ac23中分配的檔案號還需要回收,所以才搞這么復雜。我試試dw的update屬性吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/60690.html
標籤:數據庫相關
上一篇:關于呼叫外部函式的問題
