多個DW同時更新,且表中有關係存在,需要注意的擊點問題。 (轉)

worldblog發表於2008-01-06
多個DW同時更新,且表中有關係存在,需要注意的擊點問題。 (轉)[@more@]

一次在做到多個表同時的時候,出了些問題。

有必要寫出來,引起注意。

雖然多個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

----------------------------

但最好還是寫成下面比較好:

的CA屬性的處理(通用目的)
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

------------------------------------------------------------------------

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-996698/,如需轉載,請註明出處,否則將追究法律責任。

相關文章