在使用連接ADO超時。其混合了函數(shù)語言和物件導(dǎo)向程序編制語言,并且完美的適用于編程、算法、技術(shù)和探索性開發(fā),因此可以在使用的過程當中感受到趣味性和吸引力。
使連接ADO超時
活動的突然增長可能使數(shù)據(jù)庫服務(wù)器變得十分笨拙,大量增加建立數(shù)據(jù)庫連接的時間。結(jié)果是,過長的連接延時將降低數(shù)據(jù)庫的性能,用Connection對象的ConnectionTimeout,您可以限制放棄連接嘗試并發(fā)出錯誤消息之前應(yīng)用程序等待的時間。例如,下面的腳本設(shè)置ConnectionTimeout屬性,在取消連接嘗試之前等待20秒:
Set cn=Server.CreateObject("ADODB.Connection") cn.ConnectionTimeout = 20 cn.Open "FILEDSN=MyDatabase.dsn" 沒有人可以同時閱讀大量的數(shù)據(jù),象下一頁或者無數(shù)的分頁這樣的形式我不知道到底有多少人會去看,因此要提高ADO效率,不能用簡單的Timeout來控制,應(yīng)該是全面的。我建議你多多利用檢索表單,結(jié)果只出現(xiàn)一定數(shù)量就可以了。
并非是很多記錄,而是需對大量的數(shù)據(jù)進行處理后匯總,一條查詢語句經(jīng)優(yōu)化后仍需30秒以上,ADO超時而ASP的超時在30秒準時報錯,Timeout 我曾經(jīng)也試過但沒有任何效果,我是通過ODBC連接到SQL Server 7.0 再在ASP中用ADO與ODBC 相聯(lián),不知這些數(shù)據(jù)源是否支持該屬性,如果不支持,是否還有其它方法,謝謝您的回復(fù)!
使用強類型DataSet時,你能給DataSet 的XML大綱定義語言(XSD)作注解以確保強類型DataSet正確的處理空(Null)的引用??罩?nullValue)注釋使你能用String.Empty這個特定值代替DBNull、保持了空引用、或者產(chǎn)生一個異常。選擇其中的哪個依賴于應(yīng)用程序的內(nèi)容,默認情況下遇到空引用將產(chǎn)生一個異常。
刷新DataSet中的數(shù)據(jù)
如果你希望使用更新后的值從服務(wù)器刷新數(shù)據(jù)集中的值,使用DataAdapter.Fill。如果主鍵定義在數(shù)據(jù)表上,DataAdapter.Fill基于主鍵匹配新行,并把服務(wù)器的數(shù)據(jù)改成已存在的行。被刷新行的RowState設(shè)置為Unchanged,即使在刷新前它被修改過。注意如果給數(shù)據(jù)表定義了主鍵,DataAdapter.FillADO超時添加新行可能重復(fù)主鍵值。
用于在某個時候只返回一頁記錄的技術(shù)之一是建立一個SQL語句,該語句包含一個WHERE和ORDER BY子句,并有TOP判定。這種技術(shù)依賴于識別每個唯一行的方法。當導(dǎo)航到下一頁的記錄時,修改WHERE子句使它包含所有唯一標識比當前頁標識大的記錄;
當導(dǎo)航到前面一頁時,修改WHERE子句使它包含所有唯一標識比當前頁標識小的記錄。對于兩種查詢都只返回記錄的TOP頁的記錄。當導(dǎo)航到前面一頁時需要對記錄進行降序排列,這將返回查詢的末尾頁(如果需要可以在顯示前對記錄進行重新排序)。
另一種技術(shù)是建立一個SQL語句包含TOP判定和嵌入的SELECT語句。這種技術(shù)不ADO超時是基于唯一的識別每行的方法。使用這種技術(shù)的第一步是把頁面的大小與想得到的頁面數(shù)量相乘。接著把該數(shù)值傳遞給SQL查詢的TOP判定,并按升序排序。接著把這個查詢嵌入另一個查詢,該查詢從嵌入的查詢結(jié)果中選擇TOP頁面大小,按降序排列。本質(zhì)上返回的是嵌入的查詢的末尾頁面。
更多信息請查看IT技術(shù)專欄