用ADO的COMMAND對象完成對WEB數(shù)據(jù)庫動(dòng)態(tài)數(shù)據(jù)查詢的方法
發(fā)表時(shí)間:2023-08-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]用ADO的COMMAND對象實(shí)現(xiàn)對WEB數(shù)據(jù)庫動(dòng)態(tài)數(shù)據(jù)查詢的方法★ 林碧英眾所周知,由于ASP技術(shù)的出現(xiàn),使得Intranet的應(yīng)用更加廣泛深入。相當(dāng)多的企業(yè)都建立了企業(yè)內(nèi)部綜合查詢系統(tǒng),如何快速、...
用ADO的COMMAND對象實(shí)現(xiàn)對WEB數(shù)據(jù)庫動(dòng)態(tài)數(shù)據(jù)查詢的方法
★ 林碧英
眾所周知,由于ASP技術(shù)的出現(xiàn),使得Intranet的應(yīng)用更加廣泛深入。相當(dāng)多的企業(yè)都建立了企業(yè)內(nèi)部綜合查詢系統(tǒng),如何快速、準(zhǔn)確地查詢企業(yè)內(nèi)部信息是編寫基于WEB技術(shù)應(yīng)用程序必須要解決的主要問題。ASP提供了用ADO內(nèi)置的3個(gè)主要對象Recordset、Connection和Command對WEB數(shù)據(jù)庫進(jìn)行操作。其中Connection的主要功能是建立與WEB數(shù)據(jù)庫的鏈接;Command的主要功能是向WEB數(shù)據(jù)庫傳送數(shù)據(jù)查詢的請求;Recordset的主要功能是建立數(shù)據(jù)查詢的結(jié)果集。由于ADO幾乎就是為WEB數(shù)據(jù)庫應(yīng)用量身定做的,所以其中的Command對象在數(shù)據(jù)查詢方面具有強(qiáng)大的功能。它不僅能夠?qū)⒁话愕腟QL指令送往WEB數(shù)據(jù)庫服務(wù)器,還能夠傳送帶有參數(shù)的SQL指令,更重要的是還可以傳送存儲過程,因而能夠開發(fā)出更具效率的數(shù)據(jù)庫網(wǎng)頁。
一、command對象的主要屬性和方法
為了進(jìn)一步闡述Command對象的數(shù)據(jù)查詢功能,有必要先介紹一下Command對象的與數(shù)據(jù)查詢密切相關(guān)的一些屬性和方法。
屬性:
(1)CommandText:指定數(shù)據(jù)查詢信息?梢允荢QL語句、存儲過程。
(2)CommandType:指定數(shù)據(jù)查詢的類型?梢匀∷姆N設(shè)定值。
(3)ActiveConnection:建立與Connection通道的鏈接關(guān)系。
方法:
(1)Createparameter:建立一個(gè)新的參數(shù)對象。
(2)Execute:對數(shù)據(jù)庫提出數(shù)據(jù)查詢。Command對象可以用Createparameter方法建立新的參數(shù)對象,再用parameters對象的append方法將新的參數(shù)對象增加到parameters數(shù)據(jù)集合里。執(zhí)行結(jié)果是:建立一個(gè)參數(shù)名為合同編號,數(shù)據(jù)類型為字符型,長度為10,參數(shù)允許的讀寫模式為輸入,參數(shù)值為“1000030005”的參數(shù)對象,然后將此參數(shù)加入parameters數(shù)據(jù)集合。
Command對象是用Execute方法執(zhí)行數(shù)據(jù)庫查詢的,Execute方法允許傳入指定的參數(shù),從而達(dá)到動(dòng)態(tài)數(shù)據(jù)查詢。
二、用command對象實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)查詢的幾種方法
用command對象實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)查詢首先要求commandtext屬性值必須是一個(gè)帶有參數(shù)的SQL指令或者是帶有參數(shù)的存儲過程,這里所指的參數(shù)必須是查詢信息中允許傳入值的部分。再者就是調(diào)用帶有參數(shù)值數(shù)組的execute方法(格式三)或者是將參數(shù)值存放到command對象的parameters數(shù)據(jù)集合里,再調(diào)用Command對象的execute方法。
Command對象可以擁有多個(gè)parameter子對象來存儲相關(guān)的參數(shù),它們都屬于parameters數(shù)據(jù)集合。用如下方法可以將參數(shù)值寫入parameters數(shù)據(jù)集合。
假設(shè)已經(jīng)存在一個(gè)SQL Server數(shù)據(jù)庫bcdata,其中有一個(gè)數(shù)據(jù)表為gcht,數(shù)據(jù)字段有3個(gè),分別是gchtbh(工程合同編號)、gcmc(合同名稱)、htje(合同金額)。用command對象查詢1999年度和2000年度的工程合同簡況。
(1)調(diào)用parameters的refresh方法,得到符合commandtext屬性的所有parameter子對象,再將已知的參數(shù)值存放到對應(yīng)的子對象中即可。
(2)調(diào)用command對象的createparameter方法,建立一個(gè)新的parameter對象,并依附在command對象內(nèi)的parameters數(shù)據(jù)集合內(nèi)。然后調(diào)用parameters數(shù)據(jù)集合的append方法加入新的parameter子對象至數(shù)據(jù)集合內(nèi)。
結(jié)束語
ADO的connection對象是用execute方法提交數(shù)據(jù)查詢信息,recordset對象是用open方法提交數(shù)據(jù)查詢信息,雖然它們提交的數(shù)據(jù)查詢信息可以包含變量但畢竟不是真正意義上的參數(shù)傳遞,另外在組合帶有變量的SQL指令時(shí)還容易出錯(cuò),最重要的是它們不支持提交的數(shù)據(jù)查詢信息中含有備注型的字段。不論是參數(shù)型數(shù)據(jù)查詢信息還是存儲過程,command對象的地位都是十分重要的,只要command對象運(yùn)用得好,對整體數(shù)據(jù)庫網(wǎng)頁的設(shè)計(jì)會(huì)增加不少的靈活性和方便性。