在使用連接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頁面大小,按降序排列。本質上返回的是嵌入的查詢的末尾頁面。