MFC資料庫操作 事務處理

2021-07-01 18:13:22 字數 1141 閱讀 4470

事務簡介:

事務是為了完成乙個特定的功能或任務而要進行的一系列的處理步驟,事務代表了所需的系列動作的整體。

乙個事務的所有語句被作為整體執行,遇到錯誤時,可以回滾事務、取消事務內所做的所有改變。

在資料庫中,事務可以把多個操作作為單一的、最基本的活動來進行。

例如,在貨幣轉賬時,必須從賬戶中減去某個數額並將其對等數額新增到另一賬戶中。無論其中的哪個更新失敗,都將導致賬戶收支不平衡。

如果能把這兩個操作組織在乙個事務中執行,就可以解決因為某個操作失敗而導致的不平衡問題。因為事務的特點就是要麼都執行,要麼都不執行。

在 ado 的 connection 物件中提供了事務的處理功能,其提供了三個方法用於處理事務。

connection 提供的事務處理方法講解:

begintrans() 使用該方法標識乙個事務的開始,呼叫該方法後,就可以對連線的資料來源進行任何需要的更改。

committrans() 使用該方法標識乙個事務的結束,如果從事務開始到事務結束中的一切更改順利進行,該方法保證事務被成功執行,

事務內對資料庫所做的修改永久的儲存到資料庫中。

rollback() 使用該方法也標識乙個事務的結束,但是,它使用在事務執行過程中出現錯誤的情況,該方法能夠使事務內所做的修改回滾到事務執行之前的狀態。

_bstr_t vsql;

int ***num = 0;

_variant_t recordsaffected, var;

_recordsetptr p***recordset;

p***recordset.createinstance(__uuidof(recordset));

int ***id = query***id(***name);

cstring str***id, strvalue;

str***id.format(_t("%d"), ***id);

vsql = _t("delete from tbrentinfo where id=") + rentid;

tryvar = p***recordset->getcollect("snum");

if(var.vt != vt_null)

m_pconnection->committrans();

}catch(_com_error *e)

事務處理 資料庫事務

事務簡介 事務的作用 事務的作用是將一系列操作作為乙個整體,一但其 現問題,會回滾到事務的開始狀態。即事務維護了資料的完整性和一致性。事務的四個特性 acid 原子性 事務的操作是原子不可分割的。一致性 事務的運算元據保證一致性,不存在一部分改變一部分不改變。隔離性 隔離性是當多個使用者併發訪問資料...

事務處理(二) 資料庫事務

事務的作用是將一系列操作作為乙個整體,一但其中出現問題,會回滾到事務的開始狀態。即事務維護了資料的完整性和一致性。如果不考慮隔離性,事務會出現以下問題。髒讀又稱無效資料的讀出,是指在資料庫訪問中,事務t1將某一值修改,然後事務t2讀取該值,此後t1因為某種原因撤銷對該值的修改,這就導致了t2所讀取到...

資料庫的事務處理

事務是這樣一種機制,它確保多個sql語句被當作單個工作單 元來處理。事務具有以下的作用 事務是完整性的單位,乙個事務的執行是把資料庫從乙個一 致的狀態轉換成另乙個一致的狀態。因此,如果事務孤立執行時 是正確的,但如果多個事務併發交錯地執行,就可能相互干擾,造成資料庫狀態的不一致。在多使用者環境中,資...