新聞中心
隨著互聯(lián)網(wǎng)的發(fā)展和計算機技術(shù)的不斷升級,數(shù)據(jù)庫已經(jīng)成為了數(shù)據(jù)存儲和管理的核心工具。在數(shù)據(jù)庫的應(yīng)用中,事務(wù)處理是非常重要的一個環(huán)節(jié)。事務(wù)是指基于數(shù)據(jù)庫之上的一系列操作,它要么全部被執(zhí)行,要么全部不被執(zhí)行,這個過程稱為事務(wù)。本文將,包括事務(wù)的定義、特點和分類等內(nèi)容。

成都創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站營銷推廣,主機域名,網(wǎng)絡(luò)空間,網(wǎng)站托管運營有關(guān)企業(yè)網(wǎng)站制作方案、改版、費用等問題,請聯(lián)系成都創(chuàng)新互聯(lián)。
一、事務(wù)的定義
數(shù)據(jù)庫事務(wù)是具有原子性、一致性、隔離性和持久性等特性的一組操作,被視為一個單元進行執(zhí)行。
1. 原子性
事務(wù)是原子性的,意味著事務(wù)中的所有操作,要么全部執(zhí)行成功,要么全部執(zhí)行失敗。即使其中一項操作失敗,整個事務(wù)也會被視為失敗,所有的操作會被回退。
2. 一致性
事務(wù)執(zhí)行結(jié)束后,系統(tǒng)應(yīng)該保證數(shù)據(jù)的一致性。這意味著事務(wù)在執(zhí)行過程中,數(shù)據(jù)可以被多次修改,但最終數(shù)據(jù)的狀態(tài)必須是符合一定規(guī)則的。
3. 隔離性
事務(wù)之間應(yīng)該是相互隔離的,一個事務(wù)的執(zhí)行不應(yīng)該影響到其他事務(wù)的執(zhí)行結(jié)果。這可以保證事務(wù)的并發(fā)性和安全性。
4. 持久性
事務(wù)在提交之后,對數(shù)據(jù)的修改應(yīng)該被持久化保存到數(shù)據(jù)庫中,并且不可被回滾。這可以保證事務(wù)的結(jié)果不會被意外地破壞。
二、事務(wù)的特點
對于事務(wù),有以下幾個特點:
1. 原子性
事務(wù)具有原子性,意味著它可以被看成一個不可分割的整體。
2. 一致性
事務(wù)執(zhí)行的結(jié)果必須是符合一定規(guī)則的,否則事務(wù)將會被回滾。
3. 隔離性
事務(wù)之間應(yīng)該是相互隔離的,以保證并發(fā)執(zhí)行的正確性和安全性。
4. 持久性
事務(wù)一旦提交,數(shù)據(jù)修改的效果應(yīng)該被持久化保存在數(shù)據(jù)庫中。
三、事務(wù)的分類
根據(jù)Oracle官方數(shù)據(jù)庫指南,事務(wù)可以分為以下幾種類型:
1. 用戶事務(wù)
通常是由用戶直接觸發(fā)的事務(wù),涉及對單個或多個表的操作。
2. 系統(tǒng)事務(wù)
由數(shù)據(jù)庫引擎自行觸發(fā)的事務(wù),如空間管理、資源管理等。
3. 隱含事務(wù)
在DML(Data Manipulation Language,數(shù)據(jù)操作語言)語句執(zhí)行時引發(fā)的隱含事務(wù),例如INSERT、DELETE、UPDATE等等。
4. 顯式事務(wù)
由應(yīng)用程序顯式地定義和執(zhí)行的事務(wù),例如BEGIN、COMMIT和ROLLBACK語句等等。
5. 本地事務(wù)
在一個數(shù)據(jù)庫實例內(nèi)執(zhí)行的事務(wù)。
6. 全局事務(wù)
在多個數(shù)據(jù)庫實例間執(zhí)行的事務(wù)。
四、事務(wù)的應(yīng)用
在實際應(yīng)用中,數(shù)據(jù)庫的事務(wù)處理是非常重要的。在銀行、電商、等領(lǐng)域,數(shù)據(jù)的安全性和一致性是至關(guān)重要的。對于企業(yè)級應(yīng)用來說,事務(wù)處理的數(shù)據(jù)量和并發(fā)性非常高,因此如何優(yōu)化事務(wù)處理的效率和可靠性,具有極大的意義。
1. 提高事務(wù)處理能力
使用合適的數(shù)據(jù)庫引擎,提高事務(wù)處理效率和可靠性,是企業(yè)級應(yīng)用所必須具備的能力。
2. 提高事務(wù)處理并發(fā)性
通過并發(fā)控制機制,克服多個事務(wù)之間的相互干擾,提高了事務(wù)處理的并發(fā)性和安全性。
3. 降低數(shù)據(jù)異常風險
通過正確處理事務(wù)分離、隔離等問題,得到了更好的數(shù)據(jù)保障,降低了數(shù)據(jù)異常風險。
數(shù)據(jù)庫事務(wù)是數(shù)據(jù)管理的重要環(huán)節(jié),具有原子性、一致性、隔離性和持久性等特點,對于企業(yè)級應(yīng)用具有至關(guān)重要的作用。對于事務(wù)的理解和應(yīng)用,在數(shù)據(jù)庫的設(shè)計和優(yōu)化中起到了重要作用。
相關(guān)問題拓展閱讀:
- 數(shù)據(jù)庫故障分為哪幾種類型?
- 在.NET中使用Oracle數(shù)據(jù)庫事務(wù)
數(shù)據(jù)庫故障分為哪幾種類型?
數(shù)據(jù)庫運行過程中常見的故障有3類:事物故障、系統(tǒng)故障、介質(zhì)故障。
恢復策略:
1、事物故障:
發(fā)生事務(wù)故障時,被迫中斷的事務(wù)可能已對數(shù)據(jù)庫進行丁修改,為了消除該事務(wù)對數(shù)據(jù)庫的影響,要利用日志文件中所記載的信息,強行回滾該事務(wù),將數(shù)據(jù)庫恢復到修改前的初始狀態(tài)。
為此,要檢查日志文件中由這些事務(wù)所引起的發(fā)生變化的記錄,取消這些沒有完成的事務(wù)所做的一切改變,這類恢復操作稱為事務(wù)撤銷。
2、系統(tǒng)故障:
系統(tǒng)故障的恢復要完成兩方面的工作,既要撤銷所有末完成的事務(wù),還要重做所有已提交的事務(wù),這樣才能將數(shù)據(jù)庫真正恢復到一致的狀態(tài)。
3、介質(zhì)故障:
介質(zhì)故障比事務(wù)故障和系統(tǒng)故障發(fā)生的可能性要小,但這是最嚴重的一種故障,破壞性很大,磁盤上的物理數(shù)據(jù)和日志文件可能被破壞,這需要裝入發(fā)生介肢純質(zhì)故障前最新的后備數(shù)據(jù)庫副本,然后利用日志文件重做該副本后所運行的所有事務(wù)。
擴展資料:
“數(shù)據(jù)故障恢復”和“完整性約束”、“并發(fā)控制”一樣,都是數(shù)據(jù)庫數(shù)據(jù)保護機制中的一種完整性控制。所有的系統(tǒng)都免不了會發(fā)生故障,有可能是硬件失靈,有可能是軟件系統(tǒng)崩潰,也有可能是其他外界的原因,比如斷電等等。
數(shù)據(jù)庫運行的突然中斷會使數(shù)據(jù)庫處在一個錯誤的狀態(tài)局饑雀,而且故障排除后沒有辦法讓系統(tǒng)精確地從斷點繼續(xù)執(zhí)行下去。這就要求DBMS要有一套故障后的數(shù)據(jù)恢復機構(gòu),保證數(shù)桐早據(jù)庫能夠回復到一致的、正確地狀態(tài)去。
參考資料來源:
百度百科-事務(wù)故障
參考資料來源:
百度百科-系統(tǒng)故障
參考資料來源:
百度百科-介質(zhì)故障
在.NET中使用Oracle數(shù)據(jù)庫事務(wù)
在本文中 您將了解到如何在 Visual Basic NET (VB NET) 和 Visual C# NET (C#) 中使用數(shù)據(jù)庫事務(wù) 具體來講 您將系統(tǒng)學習數(shù)據(jù)庫事務(wù) 在 NET 程序中使用 OracleTransaction 對象以及如何設(shè)置事務(wù)保存點 本文中引用的所有腳本和文件都在這里提供 本文假定您大體上熟悉 C# 和 VB NET 編程
所需軟件
如果您要跟隨我們逐步完成本文中給出的示例 那么您需要安裝以下軟件
Windows NT Windows Windows XP Professional 或 Windows Server
能夠訪問一個已安裝的 Oracle 數(shù)據(jù)庫(Oracle i 版本 或更高版本)
Oracle 客戶機(版本 或更高版本)
Oracle Net(版本 或更高版本)
Oracle Data Providers for NET(版本 或更高版本)
Microsoft NET Framework(版本 或更高版本)
Microsoft NET 框架 SDK(版本 或更高版本)
如果您打算使用企業(yè)服務(wù)事務(wù)或分布式事務(wù)來開發(fā)和運行應(yīng)用程序 那么您還需要安裝 Oracle Services for Microsoft Transaction Server( 或更高版本)
您需要分別下載和安裝 NET 框架以及 SDK(先安裝框架) 您還需要下載和安裝 Oracle 數(shù)據(jù)庫 g 它包括 Oracle Data Provider for NET (ODP NET) 您可以選擇在不同計算機清改或同一計算機上安裝 ODP NET 和數(shù)據(jù)庫服務(wù)器
注意 ODP NET 驅(qū)動程序針對 Oracle 數(shù)據(jù)庫訪問進行了優(yōu)化 因此可以獲得更佳性能 并且它們還支持 Oracle 數(shù)據(jù)庫的豐富特性 如 BFILE BLOB CLOB XMLType 等 如果您正在開發(fā)基于 Oracle 數(shù)據(jù)庫的 NET 應(yīng)用程序 那么就特性和性能來講搭蘆 ODP NET 無疑是更佳的選擇
數(shù)據(jù)庫模式設(shè)置
首先 您需要設(shè)置數(shù)據(jù)庫模式 在此我們使用一個簡化的 Web 商店示例 您必須首先創(chuàng)建一個名為 store 的用戶并按以下方式將所需的權(quán)限授予該用戶(您必須首先以擁有 CREATE USER 權(quán)限的用戶身份登錄數(shù)據(jù)庫才能創(chuàng)建用戶)
CREATE USER store IDENTIFIED BY store; GRANT connect resource TO store;
注意 您會在源代碼文件 db sql 中找到前兩個語句和該部分中出現(xiàn)的設(shè)置 store 模式的其他語句
接下的語句以 store 用戶身份進行連接
CONNECT store/store;
以下語句創(chuàng)建了所需的兩個數(shù)據(jù)庫表 名稱分別為 product_types 和 products
CREATE TABLE product_types ( product_type_id INTEGER CONSTRAINT product_types_pk PRIMARY KEY name VARCHAR ( ) NOT NULL );
CREATE TABLE products ( product_id INTEGER CONSTRAINT products_pk PRIMARY KEY product_type_id INTEGER CONSTRAINT products_fk_product_types REFERENCES product_types(product_type_id) name VARCHAR ( ) NOT NULL description VARCHAR ( ) price NUMBER( ) );
注意 如果您在一個知正帶不同的模式中為 store 用戶創(chuàng)建了這些數(shù)據(jù)庫表 那么您將需要修改示例配置文件(您稍后將看到)中的模式名稱
表 product_types 用于存儲示例在線商店可能庫存的產(chǎn)品類型的名稱 表 products 包含了所銷售產(chǎn)品的詳細信息
下面的 INSERT 語句為表 product_types 和 products 添加行
INSERT INTO product_types ( product_type_id name ) VALUES ( Book ); INSERT INTO product_types ( product_type_id name ) VALUES ( DVD );
INSERT INTO products ( product_id product_type_id name description price ) VALUES ( Modern Science A description of modern science ); INSERT INTO products ( product_id product_type_id name description price ) VALUES ( Chemistry Introduction to Chemistry ); INSERT INTO products ( product_id product_type_id name description price ) VALUES ( Supernova A star explodes ); INSERT INTO products ( product_id product_type_id name description price ) VALUES ( Tank War Action movie about a future war );
MIT;
接下來 您將了解有關(guān)數(shù)據(jù)庫事務(wù)的內(nèi)容
數(shù)據(jù)庫事務(wù)簡介
數(shù)據(jù)庫事務(wù)是由一組 SQL 語句組成的一個邏輯工作單元 您可以把事務(wù)看作是一組不可分的 SQL 語句 這些語句作為一個整體永久記錄在數(shù)據(jù)庫中或一并撤銷 比如在銀行帳戶之間轉(zhuǎn)移資金 一條 UPDATE 語句將從一個帳戶的資金總數(shù)中減去一部分 另一條 UPDATE 語句將把資金加到另一個帳戶中 減操作和加操作必須永久記錄在數(shù)據(jù)庫中 或者必須一并撤銷 ― 否則將損失資金 這個簡單的示例僅使用了兩條 UPDATE 語句 但一個更實際的事務(wù)可能包含許多 INSERT UPDATE 和 DELETE 語句
要永久記錄一個事務(wù)中的 SQL 語句的結(jié)果 您可以通過 MIT 語句來執(zhí)行提交 要撤銷 SQL 語句的結(jié)果 您可以使用 ROLLBACK 語句來執(zhí)行回滾 這會把所有的行重設(shè)為它們原來的狀態(tài) 只要您事先沒有與數(shù)據(jù)庫斷開 則您在執(zhí)行回滾之前所做的任何修改都將被撤銷 您還可以設(shè)置一個保存點 以便將事務(wù)回滾至該特定的點 同時保持事務(wù)中的其他語句原封不動
在 C# 和 VB NET 中使用數(shù)據(jù)庫事務(wù)
您可以使用 OracleTransaction 類的一個對象來表示一個事務(wù) OracleTransaction 類包含多個屬性 其中的兩個為 Connection(指定與事務(wù)關(guān)聯(lián)的數(shù)據(jù)庫連接)和 IsolationLevel(指定事務(wù)隔離級別) 本文稍后將向您介紹更多有關(guān)事務(wù)隔離級別的內(nèi)容
OracleTransaction 類包含許多操控事務(wù)的方法 您可以使用 Commit() 方法永久提交 SQL 語句 并可以使用 Rollback() 撤銷這些語句 您還可以使用 Save() 在事務(wù)中設(shè)置一個保存點
我現(xiàn)在將帶著您逐步完成兩個示例程序 ― 一個用 C# 編寫 (TransExample cs) 另一個用 VB NET 編寫 (TransExample vb) 這些程序演示了如何執(zhí)行一個包含了兩條 INSERT 語句的事務(wù) 之一條 INSERT 語句將在表 product_types 中添加一行 第二條將在表 products 中添加一行
導入命名空間
以下 C# 程序語句指定在程序中使用 System 和 Oracle DataAcess Client 命名空間
using System; using Oracle DataAccess Client;
下面是等價的 VB NET 語句
Imports System Imports Oracle DataAccess Client
Oracle DataAccess Client 命名空間是 ODP NET 的一部分 它包含許多類 其中有 OracleConnection OracleCommand 和 OracleTransaction 示例程序用到了這些類
第 步
創(chuàng)建一個 OracleConnection 對象連接到 Oracle 數(shù)據(jù)庫 然后打開該連接
在 C# 中
OracleConnection myOracleConnection = new OracleConnection( User Id=store;Password=store;Data Source=ORCL ); myOracleConnection Open(); 在 VB NET 中
Dim myOracleConnection As New OracleConnection( _ User Id=store;Password=store;Data Source=ORCL ) myOracleConnection Open()
User Id 和 Password 屬性指定了您所要連接到的模式的數(shù)據(jù)庫用戶和口令 Data Source 屬性指定了數(shù)據(jù)庫的 Oracle Net 服務(wù)名稱 初始數(shù)據(jù)庫的默認服務(wù)名稱為 ORCL 如果您使用的不是初始數(shù)據(jù)庫 或者您的服務(wù)名稱不同 那么您需要在程序中修改 Data Source 屬性的設(shè)置
第 步
創(chuàng)建一個 OracleTransaction 對象 然后調(diào)用 OracleConnection 對象的 BeginTransaction() 方法啟動事務(wù)
在 C# 中
OracleTransaction myOracleTransaction = myOracleConnection BeginTransaction(); In VB NET:
Dim myOracleTransaction As OracleTransaction = _ myOracleConnection BeginTransaction()
第 步
創(chuàng)建一個 OracleCommand 對象 用于存儲 SQL 語句
在 C# 中
OracleCommand myOracleCommand = myOracleConnection CreateCommand();
在 VB NET 中
Dim myOracleCommand As OracleCommand = myOracleConnection CreateCommand
因為 OracleCommand 對象使用 OracleConnection 對象的 CreateCommand() 方法創(chuàng)建的 所以它自動使用在第 步中為 OracleConnection 對象設(shè)置的事務(wù)
第 步
將 OracleCommand 對象的 CommandText 屬性設(shè)為向表 product_types 中添加一行的之一條 INSERT 語句
在 C# 中
myOracleCommand CommandText = INSERT INTO product_types ( + product_type_id name + ) VALUES ( + Magazine + ) ;
在 VB NET 中
myOracleCommand CommandText = _ INSERT INTO product_types ( & _ product_type_id name & _ ) VALUES ( & _ Magazine & _ ) 第 步
使用 OracleCommand 對象的 ExecuteNonQuery() 方法運行 INSERT 語句
在 C# 中
myOracleCommand ExecuteNonQuery();
在 VB NET 中
myOracleCommand ExecuteNonQuery()
第 和第 步
將 OracleCommand 對象的 CommandText 屬性設(shè)為向表 Products 中添加一行的第二條 INSERT 語句 并運行它
在 C# 中
myOracleCommand CommandText = INSERT INTO products ( + product_id product_type_id name description price + ) VALUES ( + Oracle Magazine Magazine about Oracle + ) ; myOracleCommand ExecuteNonQuery();
在 VB NET 中
myOracleCommand CommandText = _ INSERT INTO products ( & _ product_id product_type_id name description price & _ ) VALUES ( & _ Oracle Magazine Magazine about Oracle & _ ) myOracleCommand ExecuteNonQuery()
第 步
使用 OracleTransaction 對象的 Commit() 方法提交數(shù)據(jù)庫中的事務(wù)
在 C# 中
myOracleTransaction Commit();
在 VB NET 中
myOracleTransaction Commit()
在完成 Commit() 方法之后 由 INSERT 語句添加的兩行將在數(shù)據(jù)庫中永久記錄
第 步
使用 Close() 方法關(guān)閉 OracleConnection 對象
在 C# 中
myOracleConnection Close();
在 VB NET 中
myOracleConnection Close()
編譯并運行示例程序
要編譯 C# 示例程序 您可以使用 csc 命令運行 C# 編譯器 因為程序使用 Oracle Data Access DLL 所以您應(yīng)使用 /r 選項指定該 DLL 的完整路徑 例如
csc TransExample cs /r:C:\oracle\product\ \ Client_ \bin\Oracle DataAccess dll
注意 您需要用您計算機上的相應(yīng)路徑來替換該 DLL 的路徑 此外 如果您的計算機找不到 csc 編譯器 那么您可能需要運行 Microsoft sdkvars bat 腳本來首先設(shè)置 NET SDK 的環(huán)境變量 您可以在安裝 NET SDK 的 bin 目錄中找到該腳本
如果您遇到以下錯誤
Example cs( ):error CS :The type or namespace name Oracle could not be found (are you missing a using directive or an assembly reference?)
這說明您沒有在編譯命令中正確指定 Oracle Data Access DLL (有關(guān)設(shè)置的信息 請參閱 John Paul Cook 的技術(shù)文章 在 Oracle 數(shù)據(jù)庫上構(gòu)建 NET 應(yīng)用程序 )
下面是用于編譯 VB NET 程序的等價命令
vbc TransExample vb /r:C:\oracle\product\ \ Client_ \bin\Oracle DataAccess dll /r:system dll /r:system data dll
接下來 輸入以下命令 運行示例
TransExample
您將看到程序的輸出 不過 如果您遇到類似以下的異常
An exception was thrown Message = ORA :TNS:listener does not currently know of service requested in connect descriptor
這說明 OracleConnection 對象的連接字符串中的 Data Source 的設(shè)置不正確 您應(yīng)當咨詢您的 DBA 或查閱 Oracle Net 文檔以獲得更多詳細信息
如果您使用的是 VS NET 那么您可以遵循以下指示來編譯和運行 C# 程序 TransExample cs
創(chuàng)建一個新的 C# 控制臺應(yīng)用程序 File>New Project 然后選擇 Visual C# Projects Console Application
將項目命名為 TransExample
用 TransExample cs 中的代碼替換 VS NET 生成的所有代碼
選擇 Project>Add Reference 添加對 Oracle DataAccess dll 的引用 然后瀏覽至您安裝 ODP NET 的目錄(在我的計算機上 它是 C:\oracle\product\ \Client_ \bin\Oracle DataAccess dll) 然后雙擊 Oracle DataAccess dll
選擇 Debug>Start without Debugging 運行該程序
要編譯和運行 TransExample vb 您可以執(zhí)行類似的一系列步驟 但第 步應(yīng)選擇一個 Visual Basic 控制臺應(yīng)用程序 并在第 步用 TransExample vb 中的代碼替換生成的代碼
查看程序的運行結(jié)果
當您運行完 C# 或 VB NET 程序時 您可以在 SQL*Plus 中使用以下 SELECT 語句查看事務(wù)的結(jié)果
SELECT p product_id p product_type_id pt name p name p description p price FROM products p product_types pt WHERE p product_type_id = pt product_type_id AND p product_id = ;
您將看到以下結(jié)果
PRODUCT_ID PRODUCT_TYPE_ID NAMENAME DESCRIPTION PRICEMagazine Oracle Magazine Magazine about Oracle
接下來 您將了解如何設(shè)置事務(wù)保存點
在 NET 程序中設(shè)置事務(wù)保存點
正如本文前面所提到的那樣 您可以設(shè)置一個保存點 以便將事務(wù)回滾至該特定的點 同時保持事務(wù)中的其他語句原封不動 您可以使用 OracleTransaction 類的 Save() 方法在事務(wù)中設(shè)置保存點
如果您有一個非常長的事務(wù)并且希望能夠僅回滾到某個特定的時間點 那么您可能要使用保存點 例如 您可能想對 個產(chǎn)品做一些更改 然后設(shè)置一個保存點 然后再對另 個產(chǎn)品做更改 如果您在進行第二批更改時出現(xiàn)了錯誤 那么您可以回滾至保存點 使您的之一批更改原封不動
我將帶您逐步完成演示如何使用保存點的 C# (TransExample cs) 示例程序和 VB NET (TransExample vb) 示例程序中的相關(guān)新步驟 這些程序向表 products 中添加一行 設(shè)置一個保存點 向表 products 中添加另一行 回滾至保存點 然后從表 products 中讀取這些行 在回滾至保存點后 只有添加到表 products 中的之一行保留了下來 第二行將已被刪除
第 到第 步與 在 C# 和 VB NET 中使用數(shù)據(jù)庫事務(wù) 部分中所示的步驟相同 因此在這里將其省略
第 步
向表 products 中添加一行 該行的產(chǎn)品 ID 為
在 C# 中
myOracleCommand CommandText = INSERT INTO products ( + product_id product_type_id name description price + ) VALUES ( + Man from Another World Man from Venus lands on Earth + ) ; myOracleCommand ExecuteNonQuery();
在 VB NET 中
myOracleCommand CommandText = _ INSERT INTO products ( & _ product_id product_type_id name description price & _ ) VALUES ( & _ Man from Another World Man from Venus lands on Earth & _ ) myOracleCommand ExecuteNonQuery()
第 步
使用 OracleTransaction 的 Save() 方法設(shè)置一個名為 SaveProduct 的保存點
在 C# 中
myOracleTransaction Save( SaveProduct );
在 VB NET 中
myOracleTransaction Save( SaveProduct )
第 步
向表 products 中添加另一行 該行的產(chǎn)品 ID 為
在 C# 中
myOracleCommand CommandText = INSERT INTO products ( + product_id product_type_id name description price + ) VALUES ( + Z Files Mysterious stories + ) ; myOracleCommand ExecuteNonQuery();
在 VB NET 中
myOracleCommand CommandText = _ INSERT INTO products ( & _ product_id product_type_id name description price & _ ) VALUES ( & _ Z Files Mysterious stories & _ ) myOracleCommand ExecuteNonQuery()
第 步
回滾到先前在第 步中設(shè)置的 SaveProduct 保存點
在 C# 中
myOracleTransaction Rollback( SaveProduct );
在 VB NET 中
myOracleTransaction Rollback( SaveProduct )
完成回滾后 在第 步中添加的第二行已被刪除 而在第 步中添加的之一行保留了下來
TransExample cs 和 TransExample vb 中剩下的步驟顯示表 products 的內(nèi)容 回滾整個事務(wù)并從數(shù)據(jù)庫斷開
用于 Microsoft Transaction Server 的 Oracle 事務(wù)服務(wù)的快速說明
Microsoft Transaction Server 是一個運行在互聯(lián)網(wǎng)或網(wǎng)絡(luò)服務(wù)器上的專有事務(wù)處理系統(tǒng) Microsoft Transaction Server 為客戶端計算機部署和管理應(yīng)用程序和數(shù)據(jù)庫事務(wù)請求
Microsoft Transaction Server 是以服務(wù)器為中心的三層體系結(jié)構(gòu)模型的一個組件 這種方法實現(xiàn)了將應(yīng)用程序的表示 業(yè)務(wù)邏輯和數(shù)據(jù)元素清晰地分布到在一個網(wǎng)絡(luò)中連接的不同計算機上 無需專門集成 您就可以在與 Oracle 數(shù)據(jù)庫服務(wù)器 版或更高版本連接的 Microsoft Transaction Server 中部署一個組件 但首先您必須安裝 Oracle Services for Microsoft Transaction Server
結(jié)論
lishixinzhi/Article/program/Oracle/202311/18786
數(shù)據(jù)庫事務(wù)類型的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫事務(wù)類型,深入探討數(shù)據(jù)庫事務(wù)類型,數(shù)據(jù)庫故障分為哪幾種類型?,在.NET中使用Oracle數(shù)據(jù)庫事務(wù)的信息別忘了在本站進行查找喔。
成都網(wǎng)站設(shè)計制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設(shè)定制開發(fā)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)站設(shè)計服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開發(fā),營銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。
網(wǎng)頁名稱:深入探討數(shù)據(jù)庫事務(wù)類型 (數(shù)據(jù)庫事務(wù)類型)
文章位置:http://www.dlmjj.cn/article/dhcgdjp.html


咨詢
建站咨詢
