自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

輕輕松松掌握ADO.NET事務(wù)處理方法技巧

開(kāi)發(fā) 后端
這里介紹了ADO.NET事務(wù)處理方法BeginTrans:開(kāi)始1個(gè)事務(wù)、CommitTrans:提交事務(wù),將事務(wù)中的操作寫(xiě)入數(shù)據(jù)源、RollBackTrans:滾回事務(wù),取消操作。

事物是一組不可在分的Sql語(yǔ)句,在編程中也是很難解決的一個(gè)問(wèn)題,我們這里就ADO.NET事務(wù)處理方法簡(jiǎn)單的介紹,希望看過(guò)可以幫你解決這方面的問(wèn)題。

ADO.NET事務(wù)處理方法:
◆BeginTrans:開(kāi)始1個(gè)事務(wù);
◆CommitTrans:提交事務(wù),將事務(wù)中的操作寫(xiě)入數(shù)據(jù)源。
◆RollBackTrans:滾回事務(wù),取消操作。

#T#當(dāng)同時(shí)更新多個(gè)表時(shí),為了保證數(shù)據(jù)一致性而必須使用事務(wù),比如有兩個(gè)表,一個(gè)是支出表,一個(gè)是余額表,當(dāng)支出一項(xiàng)費(fèi)用時(shí),支出費(fèi)用增加,余額減少,需要對(duì)這兩個(gè)表同時(shí)更新,但如果不用事務(wù),倘若在更新支出表后發(fā)生錯(cuò)誤,則余額表沒(méi)有更新,不合要求。這時(shí)就要把它們封存裝到一個(gè)事務(wù)里。確保多表操作的完整性。此外,也可以用它對(duì)同一個(gè)表的多步操作進(jìn)行封裝,使多步操作成為單個(gè)單元。

一般地,我們?cè)贐eginTrans處加一條On Error Goto ErrNum的出錯(cuò)捕獲語(yǔ)句,然后在錯(cuò)誤處理程序中使用RollBackTrans取消事務(wù)。形如:

  1. cn.BeginTrans  
  2. on Error Goto ErrNum  
  3. …更新表1  
  4. …更新表2  
  5. …  
  6. cn.CommitTrans  
  7. Exit Sub  
  8. ErrNum:  
  9. cn.RollBackTrans  
  10. msgbox //出錯(cuò)提示 

事務(wù)可以嵌套,由begintrans方法返回1個(gè)長(zhǎng)整數(shù)表示當(dāng)前事務(wù)是第幾層,如返回1為當(dāng)前事務(wù)不包含在任何事務(wù)中。CommitTrans和 RollBackTrans結(jié)束最近的BeginTrans打開(kāi)的那個(gè)事務(wù)。在程序中用begintrans開(kāi)始1個(gè)事務(wù)后,應(yīng)使用 committrans或rollbacktrans方法結(jié)束,如果不用,則在程序結(jié)束后事務(wù)全部滾回,也就是說(shuō),系統(tǒng)不會(huì)自動(dòng)去提交任何事務(wù)。ADO.NET事務(wù)處理方法例如:

  1. cn.BeginTrans  
  2. rst.MoveNext  
  3. cn.Execute "insert into BB values('嫖客店','aaa',0,'0','0',0,'0')"  
  4. cn.CommitTrans 

有兩種情況需要說(shuō)明一下:在事務(wù)中也可能出現(xiàn)問(wèn)題,導(dǎo)致被迫放棄事務(wù):一種情況是一個(gè)關(guān)健字段被鎖定,不能進(jìn)行寫(xiě)操作;另一種情況是字段值超出范圍,如字段為Integer,但實(shí)際值大于32767,字段為T(mén)ext,但值字串長(zhǎng)超過(guò)32K等,這樣會(huì)導(dǎo)致事務(wù)強(qiáng)迫放棄。

責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(guān)推薦

2010-01-04 13:06:50

ADO.NET事務(wù)

2009-11-04 15:05:45

ADO.NET事務(wù)

2009-09-15 16:26:46

Linq排序

2009-11-13 17:01:07

ADO.NET事務(wù)處理

2010-01-14 16:10:21

C++開(kāi)發(fā)

2010-01-15 10:14:21

C++ Builder

2009-11-10 15:44:17

VB.NET常量

2010-01-20 18:17:55

C++異常問(wèn)題

2010-03-01 17:32:21

Python 測(cè)試模塊

2010-03-03 18:13:23

Android組成框架

2010-01-26 14:53:43

C++

2009-06-10 17:58:41

2009-11-09 15:41:14

WCF安全性

2010-01-18 11:20:58

C++語(yǔ)言

2010-01-20 10:31:18

C++編程技術(shù)

2017-10-27 12:00:28

MySQL數(shù)據(jù)庫(kù)優(yōu)化

2010-08-30 09:27:20

2011-04-28 15:41:02

打印機(jī)卡紙

2015-09-22 10:31:11

2019-11-28 10:21:01

MySQLDocker數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)