使用CDatabase進行事務處理

2021-04-22 10:28:00 字數 1273 閱讀 2735

程式清單

9-21

使用executesql()

方法示例

cdatabase dbschool;

dbschool.open( "school", false, false, "odbc;" );

dbschool.executesql( 「update student set classid=32 where classid=32」 );

dbschool.close();

由本章的

9.1.2

小節,我們知道資料庫的完整性包括實體完整性和參照完整性。當資料庫滿足完整性規則時,又稱資料庫處於一致狀態。為保證完整性,在插入和刪除多張表的資料時,需要將某些操作作為乙個整體來執行而不允許被打斷,因此就出現了事務的概念。

事務允許把一些

sql語句作為乙個整體來執行,如果事務中的乙個

sql語句出錯,整個事務都會失敗,並回到事務執行前的狀態。

事務具有原子性,一致性,隔離性和永續性。原子性是指事務作為乙個操作單元,或者全部完成,或者全部不做。一致性是指事務將資料庫從乙個一致狀態轉換到另乙個一致狀態。隔離性是指乙個正在執行的事務在結束前不會讓其它事務看到自己的執行結果。永續性是指當事務完成後,它對資料庫的操作結果是永久的,不能再被擦除。

使用mfc odbc

類時,為開始乙個事務,應該呼叫

cdatabase::begintrans()

,然後呼叫

cdatabase::executesql()

執行這個事務,或者使用從該

cdatabase

產生的crecordset

物件執行這個事務。事務的結束有兩種:當所有的操作成功時,用

cdatabase::committrans()

提交事務;當發生錯誤時,用

cdatabase::rollback()

放棄事務,並回到事務執行前的狀態。

程式清單

9-22

是使用cdatabase

進行事務處理的乙個例程,它向

school

資料庫的

teacher

表和class

表同時新增記錄。

程式清單

9-22

事務處理例程

cdatabase *pdb;

pdb->open( "school", false, false, "odbc;" );

trycatch (cdbexception *e)

pdb->close();

delete pdb

spring進行事務管理

用jdbc的事務管理器 datasourcetransactionmanager 而啟用事務註解中的transaction manager值必須是trasactionmanager,若配置的事務管理器的id為trasactionmanager,nametransaction manager可以不寫 ...

Spring 使用註解方式進行事務管理

大家在使用spring的註解式事務管理時,對事務的傳播行為和隔離級別可能有點不知所措,下邊就詳細的介紹下以備方便查閱。事物註解方式 transactional 當標於類前時,標示類中所有方法都進行事物處理 transactional public class testservicebean impl...

Spring 使用註解方式進行事務管理

使用步驟 步驟 一 在spring配置檔案中引入命名空間 xmlns xsi xmlns tx xsi schemalocation spring beans 2.0.xsd spring tx 2.0.xsd 步驟 二 具有 transactional 註解的bean自動配置為宣告式事務支援 id...