當(dāng)前位置: 首頁(yè)IT技術(shù) → 詳細(xì)述說(shuō)ADO超時(shí)相關(guān)問(wèn)題介紹

詳細(xì)述說(shuō)ADO超時(shí)相關(guān)問(wèn)題介紹

更多

在使用連接ADO超時(shí)。其混合了函數(shù)語(yǔ)言和物件導(dǎo)向程序編制語(yǔ)言,并且完美的適用于編程、算法、技術(shù)和探索性開(kāi)發(fā),因此可以在使用的過(guò)程當(dāng)中感受到趣味性和吸引力。

 

使連接ADO超時(shí)

活動(dòng)的突然增長(zhǎng)可能使數(shù)據(jù)庫(kù)服務(wù)器變得十分笨拙,大量增加建立數(shù)據(jù)庫(kù)連接的時(shí)間。結(jié)果是,過(guò)長(zhǎng)的連接延時(shí)將降低數(shù)據(jù)庫(kù)的性能,用Connection對(duì)象的ConnectionTimeout,您可以限制放棄連接嘗試并發(fā)出錯(cuò)誤消息之前應(yīng)用程序等待的時(shí)間。例如,下面的腳本設(shè)置ConnectionTimeout屬性,在取消連接嘗試之前等待20秒:

 

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

 

 

 

沒(méi)有人可以同時(shí)閱讀大量的數(shù)據(jù),象下一頁(yè)或者無(wú)數(shù)的分頁(yè)這樣的形式我不知道到底有多少人會(huì)去看,因此要提高ADO效率,不能用簡(jiǎn)單的Timeout來(lái)控制,應(yīng)該是全面的。我建議你多多利用檢索表單,結(jié)果只出現(xiàn)一定數(shù)量就可以了。

 

并非是很多記錄,而是需對(duì)大量的數(shù)據(jù)進(jìn)行處理后匯總,一條查詢語(yǔ)句經(jīng)優(yōu)化后仍需30秒以上,ADO超時(shí)而ASP的超時(shí)在30秒準(zhǔn)時(shí)報(bào)錯(cuò),Timeout 我曾經(jīng)也試過(guò)但沒(méi)有任何效果,我是通過(guò)ODBC連接到SQL Server 7.0 再在ASP中用ADO與ODBC 相聯(lián),不知這些數(shù)據(jù)源是否支持該屬性,如果不支持,是否還有其它方法,謝謝您的回復(fù)!

 

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

 

刷新DataSet中的數(shù)據(jù)

 

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

 

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

 

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

 

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

熱門(mén)評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)