詳細述說ADO超時相關問題介紹

來源: IT168  發布時間: 2010-09-19 07:25  閱讀: 1519 次  推薦: 0   原文鏈接   [收藏]  
摘要:注意在將ADO超時合并到數據庫應用程序之前,一定要確保連接提供程序和數據源支持該屬性,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

  在使用連接ADO超時。其混合了函數語言和物件導向程序編制語言,并且完美的適用于編程、算法、技術和探索性開發,因此可以在使用的過程當中感受到趣味性和吸引力。

  使連接ADO超時   
  活動的突然增長可能使數據庫服務器變得十分笨拙,大量增加建立數據庫連接的時間。結果是,過長的連接延時將降低數據庫的性能,用Connection對象的ConnectionTimeout,您可以限制放棄連接嘗試并發出錯誤消息之前應用程序等待的時間。例如,下面的腳本設置ConnectionTimeout屬性,在取消連接嘗試之前等待20秒:  

 
Set cn=Server.CreateObject("ADODB.Connection")
cn.ConnectionTimeout
= 20
cn.Open "FILEDSN=MyDatabase.dsn"

  沒有人可以同時閱讀大量的數據,象下一頁或者無數的分頁這樣的形式我不知道到底有多少人會去看,因此要提高ADO效率,不能用簡單的Timeout來控制,應該是全面的。我建議你多多利用檢索表單,結果只出現一定數量就可以了。

  并非是很多記錄,而是需對大量的數據進行處理后匯總,一條查詢語句經優化后仍需30秒以上,ADO超時而ASP的超時在30秒準時報錯,Timeout   我曾經也試過但沒有任何效果,我是通過ODBC連接到SQL   Server   7.0   再在ASP中用ADO與ODBC   相聯,不知這些數據源是否支持該屬性,如果不支持,是否還有其它方法,謝謝您的回復!  

  使用強類型DataSet時,你能給DataSet 的XML大綱定義語言(XSD)作注解以確保強類型DataSet正確的處理空(Null)的引用。空值(nullValue)注釋使你能用String.Empty這個特定值代替DBNull、保持了空引用、或者產生一個異常。選擇其中的哪個依賴于應用程序的內容,默認情況下遇到空引用將產生一個異常。  

  刷新DataSet中的數據 
  如果你希望使用更新后的值從服務器刷新數據集中的值,使用DataAdapter.Fill。如果主鍵定義在數據表上,DataAdapter.Fill基于主鍵匹配新行,并把服務器的數據改成已存在的行。被刷新行的RowState設置為Unchanged,即使在刷新前它被修改過。注意如果給數據表定義了主鍵,DataAdapter.FillADO超時添加新行可能重復主鍵值。  

  用于在某個時候只返回一頁記錄的技術之一是建立一個SQL語句,該語句包含一個WHERE和ORDER BY子句,并有TOP判定。這種技術依賴于識別每個唯一行的方法。當導航到下一頁的記錄時,修改WHERE子句使它包含所有唯一標識比當前頁標識大的記錄;

  當導航到前面一頁時,修改WHERE子句使它包含所有唯一標識比當前頁標識小的記錄。對于兩種查詢都只返回記錄的TOP頁的記錄。當導航到前面一頁時需要對記錄進行降序排列,這將返回查詢的末尾頁(如果需要可以在顯示前對記錄進行重新排序)。 

  另一種技術是建立一個SQL語句包含TOP判定和嵌入的SELECT語句。這種技術不ADO超時是基于唯一的識別每行的方法。使用這種技術的第一步是把頁面的大小與想得到的頁面數量相乘。接著把該數值傳遞給SQL查詢的TOP判定,并按升序排序。接著把這個查詢嵌入另一個查詢,該查詢從嵌入的查詢結果中選擇TOP頁面大小,按降序排列。本質上返回的是嵌入的查詢的末尾頁面。

0
0
 
標簽:ADO .NET 超時
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()