專家詳讀ADO連接使用技巧
假期開始ADO連接的學(xué)習(xí),首先碰到的就是環(huán)境的配置。以前學(xué)的ADO連接,但并沒有怎么用。所以有一個星期的時間基本是在用實踐著.net 1.0,不知道Gates知道了,會不會有點郁悶。
ADO連接在DCOM中運行是對于服務(wù)器端軟件的設(shè)計是一個考驗。特別是使用自由線程而且自己處理數(shù)據(jù)連接的時候。在Delphi中我個人認(rèn)為使用DCOM來進(jìn)行開發(fā)的時候如果沒有特別的需要(如數(shù)據(jù)相應(yīng)速度,和數(shù)據(jù)庫連接數(shù)的限制),最好是使用單元線程,這樣我們就無需為ADO連接的處理而擔(dān)心了!
如果系統(tǒng)需要全局管理數(shù)據(jù)連接的那么一定要小心因為對于服務(wù)器端的系統(tǒng)而言只有當(dāng)系統(tǒng)終止的時候才會回收數(shù)據(jù)連接。要防止多個線程同時訪問同一個數(shù)據(jù)庫連接。而在Delphi 的客戶端開發(fā)的時候我們要盡量的將少生成業(yè)務(wù)對象的實例。
對于使用過的業(yè)務(wù)對象如果沒有全局申明,那么在其申明的域以外就會被釋放,一個好的傳統(tǒng)是對于每個對象都在使用過以后賦值為nil,從而讓系統(tǒng)回收。在構(gòu)建一個State Server時,我們最好將ADOConnection的KeepConnection 設(shè)置為True,否則只有當(dāng)這個State Object 被釋放的時候才會被關(guān)閉,ADO連接因為KeepConnection只保證在沒有數(shù)據(jù)集被關(guān)閉的情況下才能關(guān)閉連接!#t#
為此我們在使用State Server Object的時候可以將KeepConnection屬性設(shè)置為True,這樣我們就能夠在我們不需要數(shù)據(jù)連接而需要對象的狀態(tài)的時候自動的將數(shù)據(jù)庫連接關(guān)閉。如果有很多的客戶端同時連接到服務(wù)器,如果才用ADO連接將產(chǎn)生很多的數(shù)據(jù)庫連接,這樣就能夠在不需要數(shù)據(jù)庫連接的時候自動的關(guān)閉數(shù)據(jù)庫連接。如果需要的時候再次打開。
插入記錄:
- private void btnPublish_ServerClick(object sender, System.EventArgs e)
- {
- string strConnection = ConfigurationSettings.AppSettings["SqlDatabase1"];
- // 連接SqlServer數(shù)據(jù)庫
- SqlConnection conn = new SqlConnection(strConnection);
- // 建立SqlCommand
- SqlCommand cmd = conn.CreateCommand();
- cmd.CommandText = "INSERT INTO NewsArticle (Title, SubTitle, Writer, Content) valueS ("
- + """ + txtTitle.Text + "","
- + """ + txtSubTitle.Text + "","
- + """ + txtWriter.Text + "","
- + """ + txtContent.Text + "")";
- conn.Open();
- //Response.Write (cmd.CommandText);