多個DW同時更新,且表中有關系存在,需要注意的擊點問題。
2024-07-21 02:09:07
供稿:網友
一次在做到多個表同時更新的時候,出了些問題。
有必要寫出來,引起注意。
雖然多個dw(3個)各自對應的都是一個表,但這些表間存在著 關系,而且dw是同時更新。
比如:table_1 : id , name ,sex .......
table_2: ...id(與table_1有對應關系), pro_1 ,pro_2......
table_3: ...id(與table_1有對應關系), reg_time.....
由于沒有經驗:
第一次,后兩個dw里在設計的時候,沒有選擇與第一個表相關的 項----id。
后來,發現無法更新。
只能從新設計,將table_2 和 table_3的id項都分別選在各自的dw中,
但在界面中又不想讓其出現,最好的辦法---
設置他們的visable屬性為false,也就是去掉屬性里visable前的“鉤”。
設計好后的編碼中,我先開始的編碼是:
if dw_1.update() = 1 then
if dw_2.update() = 1 then
if dw_3.update() = 1 then
commit;
else
rollback;
end if
end if
end if
----------------------------
但最好還是寫成下面比較好:
file://加的sqlca屬性的處理(通用目的)
boolean lb_tran
lb_tran = sqlca.autocommit
sqlca.autocommit = false
if dw_1.update() <> 1 then
messagebox("操作提示","dw_1 數據保存失敗!")
rollback;
sqlca.autocommit = lb_tran
return
elseif dw_2.update() <> 1 then
messagebox("操作提示","dw_2 數據保存失敗!")
rollback;
sqlca.autocommit = lb_tran
return
elseif dw_3.update() <> 1 then
messagebox("操作提示","dw_3 數據保存失敗!")
rollback;
sqlca.autocommit = lb_tran
return
else
commit
end if
------------------------------------------------------------------------