新聞中心
本系列課程我們將會從ADO構(gòu)造的各個(gè)角度出來,來講述ADO構(gòu)造發(fā)布以后的全新功能,這主要包括C#3.0,VB9.0,WCF,WPF,WP,LINQ,AJAX,mobile開發(fā),Cardspace,智能客戶端。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比漢陰網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式漢陰網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋漢陰地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
在構(gòu)造查詢的時(shí)候,要搞清楚為什么必須這么做、為什么不能那么做是一個(gè)很復(fù)雜的問題。然而,一些基本的指導(dǎo)方針能夠讓構(gòu)造高效查詢的過程更加流暢、輕松。一般地,你不應(yīng)該讓查詢浪費(fèi)服務(wù)器時(shí)間。下面幾個(gè)技巧能夠幫助你構(gòu)造出更好、更高效的查詢。
不要強(qiáng)制ADO構(gòu)造每次執(zhí)行查詢的時(shí)候重新編譯和構(gòu)造查詢執(zhí)行計(jì)劃。避免這種重復(fù)操作的一種簡單方法是使用帶有參數(shù)的存儲過程。注意盡量不要使用ADO Command對象的Prepare屬性——有時(shí)它不能正確工作。如果使用存儲過程,你還可以通過消除不必要的“受影響行數(shù)”返回值進(jìn)一步提高ADO性能——只需在存儲過程中加入SET NOCOUNT ON就可以了。
盡量減少與服務(wù)器的通信次數(shù)。如果你有幾個(gè)相關(guān)的操作要執(zhí)行,請把它們合并為一個(gè)存儲過程,或者是一個(gè)可以在服務(wù)器上作為腳本執(zhí)行的復(fù)合查詢。ADO構(gòu)造避免使用方法(比如Refresh)和不適當(dāng)?shù)腜arameters集合引用,ADO構(gòu)造會強(qiáng)制ADO增加額外的服務(wù)器通信過程。#t#
在客戶機(jī)/服務(wù)器應(yīng)用中,只構(gòu)造Command對象一次,而不是每次使用Command對象的時(shí)候重新構(gòu)造。你可以重新設(shè)置Command的參數(shù)值,然后在需要時(shí)執(zhí)行它。
當(dāng)查詢返回的不是一個(gè)記錄集時(shí),確保使用了adExecuteNoRecords選項(xiàng),告訴ADO越過所有那些用來接收和構(gòu)造記錄集(Recordset格式)的代碼。ADO構(gòu)造你可以把a(bǔ)dExecuteNoRecords選項(xiàng)傳遞給Execute方法,或把它作為Command的選項(xiàng)。
執(zhí)行返回簡單記錄集的存儲過程時(shí),不要使用Command對象。所有的存儲過程(以及Command對象)可以作為Connection對象的COM方法出現(xiàn)。讓存儲過程作為Connection對象的方法出現(xiàn)有著顯著的性能優(yōu)勢,同時(shí)它也簡化了代碼。
盡管這種技術(shù)對于那些有Return Status值或Output參數(shù)的存儲過程沒有什么幫助,但對于動(dòng)作查詢(INSERT、DELETE等)ADO構(gòu)造及那些返回一個(gè)或多個(gè)記錄的查詢來說,這種技術(shù)很有用。把存儲過程作為Connection的方法之后,你可以用方法參數(shù)的形式傳入存儲過程的輸入?yún)?shù);如果調(diào)用存儲過程返回了一個(gè)記錄集,你可以通過方法調(diào)用中***一個(gè)參數(shù)引用該Recordset。例如,下面的ADO構(gòu)造執(zhí)行一個(gè)名為“Fred”的存儲過程,F(xiàn)red存儲過程有兩個(gè)輸入?yún)?shù),返回一個(gè)Recordset:
當(dāng)前題目:查詢ADO構(gòu)造進(jìn)行學(xué)習(xí)切磋
文章網(wǎng)址:http://www.fisionsoft.com.cn/article/djcjscj.html


咨詢
建站咨詢
