目前日期文章:201011 (2)

瀏覽方式: 標題列表 簡短摘要

WindowBuilder Pro 所屬公司 Instantiations, Inc. 在八月份被 Google 收購後,在 2010/9/16 就發佈了消息,把原來要錢的 WindowBuilder Pro/WindowTester Pro/CodePro AnalytiX 全部免費使用安裝。真是太爽了,現在終於有了像樣的 java GUI 開發工具了,有了 WindowBuilder Pro 才有動力來寫一支比較大型程式。

  1. 官方網站: Google Java Developer Tools
  2. 只能使用 remote update site 方式下載安裝,不能先下載收藏。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

>>> int __fastcall BeginTrans(void);

Description:
Call BeginTrans to start a new transaction in the data store the ADO connection component is connected to.
BeginTrans returns a value of type integer, indicating the nesting level of the new transaction.
A successful execution of BeginTrans triggers an OnBeginTransComplete event and sets the InTransaction
property to true.

Note:   The ADO connection object must have an active connection before BeginTrans can be used.


>>> void __fastcall CommitTrans(void);

Description:
Call CommitTrans to save any changes made during the current transaction and to end the transaction.
A successful execution of CommitTrans triggers an OnCommitTransComplete event and sets the InTransaction
property to false.


>>> void __fastcall RollbackTrans(void);

Description:
Call RollbackTrans to cancel any changes made during the current transaction and to end the transaction.
A successful execution of RollbackTrans triggers an OnRollbackTransComplete event and sets the InTransaction 
property to true.

ADO 的交易模式預設是 auto commit,也就是每做一筆交易就馬上寫入資料庫,如果想要做批次寫入,就必須使用 BeginTrans 函數。執行 BeginTrans 函數後,接下來的交易都不會被寫入資料庫,必須等到 CommitTrans 函數執行才會寫入資料庫,並恢復 auto commit;或是等到 RollbackTrans 函數執行,會取消此次所有交易,並恢復 auto commit。而且 BeginTrans 可以套嵌使用,層層疊疊,但必須等到最後一個 CommitTrans 才會把所有交易寫入資料庫。所以如果不小心執行 CommitTrans 卻沒有執行 CommitTrans 就結束程式,那就等著被人追殺吧。

  1. BeginTrans: 取消 auto commit,並設定還原點。
  2. CommitTrans: 寫入自還原點所有交易,恢復 auto commit。
  3. RollbackTrans: 取消自還原點所有交易,恢復 auto commit。
  4. BeginTrans 返回值表示第幾層套嵌,第一個執行 BeginTrans 返回 1,第二個執行 BeginTrans 返回 2,以此類推。

由於 BeginTrans 函數會造成資料庫沒有寫入的問題,當然這一定是個人寫程式那里有露掉沒檢查到的大 bug,所以必須用寫一個預防機制放在 form close 裏。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()