目前分類:Borland C++ Builder (9)

瀏覽方式: 標題列表 簡短摘要
>>> 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) 人氣()

StringGrid 有一個屬性 Selection ,儲存被選中的起始位置至結束位置。
所以,只要判斷 cell 是否在 Selection 之內即可。

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

雖然 StringGrid 沒有提供 visable 屬性,但是可以利用欄位寬度來取巧。

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

acMember->CommandText =
"update member set debt=" + IntToStr(debt) + ",e_date='" +

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

說明在BCB中如何撰寫多國語言程式。

如 果您寫的軟體需要考慮到轉換成為不同語言,那麼由Borland C++ Builder Enterprise Edition 所提供給您的多國語言翻譯環境將是極為有幫助的。他可以很快的幫助您將各國語言版本製作出來。並且也提供動態的方式讓您可以輕易的製作出您所需要的版本。 甚至可以讓您在不用變動程式碼本身的狀態下,將GUI 的外觀字型等進行適度的調整。

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

[FileExists]
Tests if a specified file exists.

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

#include "inifiles.hpp"

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

    DWORD dwVerInfoSize = 0;
    AnsiString szFile = Application->ExeName;

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

1. 母視窗直接判斷即可。
if(frame->ShowModal() == mrOk) {

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