新聞中心
在公司技術人員進行對ADO數據庫操作時,特別是企業(yè)級的數據庫應用,就不得不提一個多人操作時經常會產生的問題——并發(fā)沖突。本文首先來看一下什么是并發(fā)沖突,傳統(tǒng)的并發(fā)沖突有現有的處理方式。

創(chuàng)新互聯是專業(yè)的懷遠網站建設公司,懷遠接單;提供網站制作、做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行懷遠網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
一、要完成本文中的實例,您需要作如下準備:
將Visual Studio 2008及.NET Framework 3.5升級到SP1。點擊轉到升級地址。 安裝SQL SERVER 2005,VS 2008中自帶的EXPRESS版的SQL SERVER應該也可以用。 下載并附加數據庫:點擊下載DemoDbV2。 創(chuàng)建一個VB Console Application,并且取一個合適的名字(例如:Concurrency之類的)。注意,目標Framework要設置成3.5版。
二、什么是并發(fā)沖突
讓我們來看一個跟取款相關的例子:某年某月某日某時某分,ADO數據庫老王在A取款機取錢,他兒子小王同時在B取款機取錢(不要問我為什么這么巧^_^),他倆從同一個賬號上取。于是就發(fā)生了如下一序列的操作:
A取款機向中央數據庫提問:這賬上還有多少錢?
B取款機向中央數據庫詢問:這賬上還有多少錢? 中央數據庫回答A取款機:2W,中央數據庫回答B(yǎng)取款機:2W,然后,ADO數據庫老王對A取款機說:我要取出1.5W。 同時,小王對B取款機說:我要取出1.8W。 #t#
A取款機就算了一下,2W-1.5W=0.5W>0,于是就吐出1.5W現金給了老王,并且準備告訴中央數據庫,現在還剩0.5W啦。但是,就在它告訴中央數據庫之前,發(fā)生了以下的事情:
B取款機計算了一下,2W(此時,它還不知道余額已經成0.5W了,因為A取款機還沒有告訴中央數據庫)減去1.8W等于0.2W大于0,于是就吐出1.8W現金給了小王。然后,ADO數據庫當然也要知會中央數據庫。
中央數據庫于是收到A取款機的消息,說,這個賬號還剩0.5W,于是刷新余額為0.5W。然后又收到B取款機說還剩0.2W,于是,就刷新余額為0.2W。 呵呵,于是,小王+老王的賬戶里一共存有2W元,結果老王取了1.5W元,小王取了1.8W元,賬戶里卻還剩了0.2W元。
這就是一種并發(fā)沖突,由于同一時間有兩個或者多個端在對同一數據進行操作,ADO數據庫從而導致數據發(fā)生了錯誤。如果取款機真的以這樣的方式來處理并發(fā),那么,我現在就不寫這片文章了——趕緊發(fā)動全家對表,說好了在某一時刻同時取錢去。
新聞名稱:如何正確操作ADO數據庫創(chuàng)建說明
文章路徑:http://www.dlmjj.cn/article/cciighp.html


咨詢
建站咨詢
