使用ADO.Net程序使用方法與注意事宜
ADO.Net程序作為下一代的開發程序,代號為Orcas。最近微軟推出了VS 2008 Professional測試版,涵蓋了VS之前版本的所有功能,快捷鍵也基本完整,與將要發布的RTM版不會有什么太大的差別。
對于ADO的數據訪問技術是比較成熟的。ADO 訪問數據的時候可以斷開連接也可以不斷開連接。但是對于ADO.Net程序而言保持連接簡直是浪費,因為其數據已經被提到了客戶端來處理,已經和數據庫沒有關系了。所以在ADO.Net的數據庫系統中一般是當取回數據或者完成操作以后就會關閉數據庫連接(實際上也許沒有被關閉)。
ADO.Net的數據庫連接的關閉是返回緩沖池中而不是一定斷開了和數據庫的連接,對于何時關閉這個連接由ADO.Net程序的緩沖池管理機制來決定。而ADO在使用的時候如果關閉了連接那么這個連接是真的被關閉了。#t#
這也是Delphi里面我們對于一個數據庫一般只采用一個連接的原因,為了減少數據庫連接的數目來降低數據庫負擔,當然COM+和MTS也提供了連接池機制,但是其連接池機制似乎不是很成熟,特別是MTS中采用系統的數據連接池可能會造成系統的死鎖,當然我們可以使用自己的連接池或者第三方的連接池來管理數據庫連接。
而在ADO.Net程序中這一功能是是系統的一部分,但是在使用中發現只有連接被關閉才會返回池中,如果連續的創建數據庫連接而已經使用的數據庫連接沒有被返回池中這個時候,ADO.Net會真實的創建數據庫連接并且返回給用戶。由此可見在ADO.Net中如果不關閉連接而是不停的請求連接是一件很恐怖的事情。
要防止多個線程同時訪問同一個數據庫連接。而在Delphi 的客戶端開發的時候我們要盡量的將少生成業務對象的實例,ADO.Net程序對于使用過的業務對象如果沒有全局申明,那么在其申明的域以外就會被釋放,一個好的傳統是對于每個對象都在使用過以后賦值為nil,從而讓系統回收。
在構建一個State Server時,我們最好將ADO.Net程序 設置為True,否則只有當這個State Object 被釋放的時候才會被關閉,因為KeepConnection只保證在沒有數據集被關閉的情況下才能關閉連接!為此我們在使用State Server Object的時候可以將KeepConnection屬性設置為True,這樣我們就能夠在我們不需要數據連接而需要對象的狀態的時候自動的將數據庫連接關閉。

















