国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在ADO.NET中使用事務保護數據的完整性(3)

2024-07-10 13:03:25
字體:
來源:轉載
供稿:網友
事務在ado.net中

ado.net 支持兩種事務模型,這在.net framework 文檔中作為指南有定義.事務指南手冊介紹了通常應該知道的數據庫事務, 它影響操作單個目標數據庫.一個類通過由ado.net顯示描述的事務邊界使用事務類和方法能提供事務指南.在接下來的章節中,我將把重點放在事務指南上.

自動事務也是可行的,為了使用類來參與事務來協調跨多個數據源的改變.在這種情景下事務本身是在外層處理的,比如通過com+ 和 dtc. 需要了解更多自動事務的,可以參照相關自動事務.

注:當沒有在你的代碼中指定事務行為時,你應該注意數據庫事務默認行為.比如,sql server 默認自動模式,每個事務-sql 語句或成功或失?。私饽姆N默認行為是希望得到的從你工作的數據源中,能幫你決定你是否顯示定義事務,也可以對于你理解你的系統行為更有幫助.

事務相關類總攬

ado.net 數據提供對象通過connection, command, 和transaction 類來提供事務功能. 一個典型的事務過程類似以下:

1. 打開事務通過connetion.begintransaction()

2. 通過設置command 的command.transaction 屬性,在事務中加入語句或存儲過程.

3. 依靠提供者,選擇使用 transaction.save() 或 transaction.begin() 來創建savepoint 或內嵌的事務來使能局部回滾.

4. 提交或回滾事務通過使用transaction.commit() 或transaction.rollback()

所有的數據提供者提供了同樣的基本結構來處理事務,開始連接的事務,加入指令,使用事務物件來提交或回滾.

sql server 事務

sql server 數據提供對象提供事務的基本功能情況見以下的類和成員:

class
member
function

sqlconnection
begintransaction
open a new transaction.

sqlcommand
transaction
enlist the command associated with the object in an open transaction.

sqltransaction
save
create a savepoint to enable a partial rollback.

sqltransaction
rollback
roll back a transaction.

sqltransaction
commit
commit a transaction



sql server 數據提供者( 對于sql server 來說,ole db provider 也是如此) 不提供在代碼中創建內嵌事務的方式, 因此內嵌事務在sql server并不真正的被支持.因此這兒只有一種方式來開始一個事務在sqlclient中-使用sqlconnection.begintransaction(). 你不能在統一個連接中打開另外一個事務,直到先前的事務被提交或回滾,因此在任何時間每個連接只有一個打開的事務.為了使用局部回滾,使用sqltransaction.save().

ole db 事務

ole db 數據提供者提供事務的基本功能情況見以下的類和成員:

class
member
function

oledbconnection
begintransaction
open a new transaction.

oledbcommand
transaction
enlist the command associated with the object in an open transaction.

oledbtransaction
begin
create a nested transaction, to enable a partial rollback.

oledbtransaction
rollback
roll back a transaction.

oledbtransaction
commit
commit a transaction



ole db 數據提供者不提供任何的方法來設置savepoints, 相反的有個begin() 方法在oledbtransaction物件上.這允許你創建內嵌事務(根據你的數據庫)來提供類似的功能.在這種情況下你可以在單個連接中擁有多個事務.但必須記住的是顯示的調用提交和回滾.

記住,.net ole db數據提供者的內嵌事務依賴于你的數據庫和指定的ole db提供者.為了成功實施內嵌事務,其必須被你的數據庫和ole db 提供者都支持.

oracle 事務

oracle 數據提供者提供事務的基本功能情況見以下的類和成員:

class
member
function

oracleconnection
begintransaction
open a new transaction.

oraclecommand
transaction
enlist the command associated with the object in an open transaction.

oracletransaction
rollback
roll back a transaction.

oracletransaction
commit
commit a transaction



oracle 數據提供者不允許你指定savepoints或內嵌事務.savepoints 被oracle 支持,但是你不能實施它們對于當前的oracle數據提供者版本來說.事務于oracle 來說或者回滾或者提交,局部回滾是不能的.



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚宁县| 抚松县| 鄂尔多斯市| 安阳县| 漳州市| 井陉县| 周口市| 本溪市| 肥东县| 保德县| 普兰店市| 谢通门县| 剑河县| 永安市| 潞西市| 双鸭山市| 无棣县| 孟津县| 平乐县| 龙江县| 兰州市| 安丘市| 丹棱县| 剑川县| 景德镇市| 古丈县| 游戏| 翼城县| 恩施市| 嘉鱼县| 洛宁县| 彰化县| 札达县| 东兰县| 高邑县| 讷河市| 新余市| 云梦县| 开化县| 安乡县| 慈溪市|