• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      ACCESS帶參數(shù)的查詢?cè)斀?/h1>
      2007-08-25 01:30:42吳險(xiǎn)峰
      關(guān)鍵詞:數(shù)據(jù)類型窗體對(duì)話框

      吳險(xiǎn)峰

      摘要:總結(jié)了ACCESS中設(shè)計(jì)和實(shí)用帶參數(shù)查詢的方法。介紹了通過ADO訪問ACCESS中的常規(guī)方法,并探討了ACC-ESS中查詢與存儲(chǔ)過程的關(guān)系,以及以存儲(chǔ)過程方式訪問查詢的方法。

      關(guān)鍵詞:ACCESS參數(shù)查詢存儲(chǔ)過程

      1ACCESS環(huán)境下的參數(shù)查詢

      1.1在查詢?cè)O(shè)計(jì)器中建立參數(shù)查詢

      參數(shù)在查詢中,通常作為查詢條件準(zhǔn)則的一個(gè)部分,比如,要根據(jù)產(chǎn)品的類別來列出產(chǎn)品清單(例一),則在查詢的設(shè)計(jì)視圖中,將字段列表中的[類別ID]字段拖到查詢?cè)O(shè)計(jì)網(wǎng)格。然后在其下的“條件”單元格中,鍵入[a_類別],即建立了名為“a-類別”的參數(shù),保存命名為[按類別查詢產(chǎn)品]。

      特別注意的是,必須在用[]界定參數(shù)名,ACCESS的查詢中,用[]來界定對(duì)象名,主要是表、查詢、字段、參數(shù)等,如果在[]中的標(biāo)識(shí)符不是表、查詢、字段或其他對(duì)象的名稱,則ACCESS將它視作參數(shù)。

      當(dāng)我們運(yùn)行查詢的時(shí)候,系統(tǒng)彈出參數(shù)輸入對(duì)話框,在輸入框中輸入實(shí)際參數(shù)值后,Access繼續(xù)處理查詢,然后在數(shù)據(jù)表中顯示查詢結(jié)果。

      1.2參數(shù)對(duì)話框的使用

      參數(shù)對(duì)話框有兩個(gè)主要的作用,一是指定參數(shù)的數(shù)據(jù)類型;二是指定運(yùn)行時(shí)參數(shù)的輸入順序。

      必須要指定參數(shù)的數(shù)據(jù)類型的兩種情況是:(1)參數(shù)用于交叉表查詢;(2)參數(shù)的數(shù)據(jù)類型為邏輯值(是/否)。在交叉表查詢中,如果未在參數(shù)對(duì)話框中指定參數(shù)的數(shù)據(jù)類型,查詢運(yùn)行時(shí)將會(huì)報(bào)錯(cuò)而不能進(jìn)行,這是由于iet引擎要求TRANSFORM查詢中的變量必須有確定的數(shù)據(jù)類型。

      查詢參數(shù)中有邏輯值(是/否)時(shí),如果不在查詢窗口中規(guī)定參數(shù)為邏輯型(是/否),則系統(tǒng)會(huì)把表示邏輯值的數(shù)值當(dāng)成普通的數(shù)值,換而言之,只有輸入-1/0時(shí)才能夠和表中的值相匹配。如果在查詢窗口中規(guī)定參數(shù)為邏輯型,那么輸入非(4)、yes/no、true/false均能夠和表中的值準(zhǔn)確匹配。所以在這種情況下,也應(yīng)在查詢參數(shù)對(duì)話框中作明確的規(guī)定,以避免使用時(shí)的混亂。

      查詢窗口的另外一個(gè)作用是,當(dāng)有多個(gè)參數(shù)時(shí),可以規(guī)定參數(shù)的輸入順序,在默認(rèn)情況下,各參數(shù)的輸入順序是依其在查詢?cè)O(shè)計(jì)網(wǎng)格中出現(xiàn)的位置來決定的,我們可以在查詢參數(shù)設(shè)置對(duì)話框中輸入相關(guān)的參數(shù),強(qiáng)制性的規(guī)定各參數(shù)的輸入順序。

      1.3自定義有提示信息的參數(shù)輸入窗口

      在ACCESS的查詢?cè)O(shè)計(jì)器中,參數(shù)不僅可以是一個(gè)普通的變量,還可以是窗體、報(bào)表等容器中所包含的控件。利用這一特性,我們可以把帶參數(shù)的查詢和窗體、報(bào)表等結(jié)合起來,設(shè)計(jì)出有自定義提示信息的,或不同輸入風(fēng)格的參數(shù)輸入窗口。如按類別查詢產(chǎn)品時(shí),可以先創(chuàng)建一個(gè)命名為“類別查詢”的窗體,在該窗體中,創(chuàng)建一個(gè)命名為[類別1的組合框,用于輸入?yún)?shù),然后,在查詢?cè)O(shè)計(jì)器中建立相應(yīng)的查詢,在[類別id]的條件單元格中輸入“[Forms]![類別查詢]![類別]”,這樣,就可以把自定義窗體和查詢聯(lián)結(jié)起來,獲得更個(gè)性化和高效的輸入界面。

      2用ADO訪問帶參數(shù)的查詢

      2.1利用Parameters集合攜帶參數(shù)

      在ADO中,可以用多種方法來查詢數(shù)據(jù)庫(kù),如果要使用查詢參數(shù)時(shí),則必須使用Command對(duì)象。

      使用Command對(duì)象通常用CommandText(屬性定義命令)的可執(zhí)行文本(例如SQL語(yǔ)句)。如果要運(yùn)行一個(gè)查詢,將CommandText屬性的值設(shè)置為該查詢的名稱即可,然后,在適當(dāng)時(shí)候,用Execute方法執(zhí)行命令,并返回Recordset對(duì)象,但如果要運(yùn)行一個(gè)帶有參數(shù)的查詢,常規(guī)的方法是,利用Parameter對(duì)象和Parameters集合。

      Command對(duì)象包含一個(gè)由Parameter對(duì)象組成的Pa-rameters集合。我們正是通過它們來傳遞參數(shù)的。其使用的過程是,使用CreateParameter方法創(chuàng)建帶適當(dāng)屬性設(shè)置的Parameter對(duì)象,并使用Append方法將它們添加到Pa-rameters集合中,之后再使用Execute方法即可。

      在創(chuàng)建Parameter對(duì)象時(shí),使用CreateParameter方法,其完整形式為:command,CreateParameter(Name,Type,Direction,Size,Value)

      Name為包含Parameter對(duì)象的名稱,Type指定Pa-rameter對(duì)象的數(shù)據(jù)類型。Direction指定Parameter對(duì)象的類型,即該參數(shù)是輸入?yún)?shù)還是輸出參數(shù)等,由于AC-CESS只支持輸入?yún)?shù),因此該參數(shù)一般是adParamlnput。Size指定參數(shù)值的最大長(zhǎng)度(以字符或字節(jié)為單位)。Value指定Parameter對(duì)象的值。這些參數(shù)均為可選參數(shù),也可以通過對(duì)象的相關(guān)屬性的設(shè)置來達(dá)到同樣的目的。在將Pa-rameter添加到Parameters集合之前,應(yīng)規(guī)定Parameter的數(shù)據(jù)類型。訪問1.1中例1的[按類別查詢產(chǎn)品]的代碼如下:

      2.2視查詢?yōu)榇鎯?chǔ)過程

      我們可以把查詢都當(dāng)作是對(duì)SQL語(yǔ)句的封裝和優(yōu)化,在這點(diǎn)上與存儲(chǔ)過程有些接近。可以在ACCESS中把查詢視為存儲(chǔ)過程。這樣,當(dāng)我們用ADO訪問ACCESS中的查詢時(shí)就可采用另外一種方式,即調(diào)用存儲(chǔ)過程的方式,調(diào)用存儲(chǔ)過程也使用Command對(duì)象,但在參數(shù)的使用上,卻采用了不同的方式,即直接通過Execute傳遞參數(shù)。

      在ADO中以調(diào)用存儲(chǔ)過程的方式訪問例1中的[按類別查詢產(chǎn)品]的代碼如下:

      其中第二個(gè)參數(shù)為傳遞給存儲(chǔ)過程的參數(shù),注意,需要把存儲(chǔ)過程的參數(shù)數(shù)組化后才能作為Execute的參數(shù)。

      比較兩段代碼,可以得到這樣一個(gè)結(jié)論,如果查詢帶有參數(shù),既可用Command對(duì)象的Parameters的當(dāng)前值作為參數(shù),也可以在Execute方法中調(diào)用傳遞的參數(shù),對(duì)于性能不太敏感的應(yīng)用而言,這兩種方式是沒有多大差別的,對(duì)于要求較高的性能,則需考慮采用何種方式,因?yàn)镃ommand對(duì)象有一個(gè)CommandType屬性,該屬性指定系統(tǒng)按何種方式處理Commandtext,比如是按查詢表的方式(adCmdTable),還是按存儲(chǔ)過程的方式(adCmdStoredProe)。對(duì)不同的方式系統(tǒng)可以按其特性進(jìn)行優(yōu)化處理。而在以上兩段代碼中使用Command對(duì)象時(shí),均未對(duì)Command對(duì)象的Command-Type屬性作設(shè)置,此時(shí)取默認(rèn)值adCmdUnknown表示類型未知,系統(tǒng)性能將會(huì)降低,因?yàn)锳DO必須耗費(fèi)代價(jià)來確定CommandText屬性是SQL語(yǔ)句、存儲(chǔ)過程還是表名。如果知道正在使用的命令的類型,設(shè)置CommandType屬性可以提示ADO直接轉(zhuǎn)入相關(guān)代碼,所以,使用的查詢是類似于SOL查詢的返回,則應(yīng)設(shè)置CommandType為ad-CmdTable,而其他無返回的的查詢則建議使用adCmd-StoredProc,一旦明確了CommandType,那么調(diào)用方式就不可混淆,這樣可以提高執(zhí)行效率。問時(shí)我們也可以考慮到應(yīng)用在ACCESS和SQL SERVER之間平滑遷移時(shí)的需要,來選擇策略。

      猜你喜歡
      數(shù)據(jù)類型窗體對(duì)話框
      詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
      如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
      正常恢復(fù)虛擬機(jī)
      試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
      檔案天地(2019年5期)2019-06-12 05:12:02
      Bootlace Worms’Secret etc.
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
      快速抓取對(duì)話框中的完整信息
      電腦迷(2012年22期)2012-04-29 20:30:54
      WinCE.net下圖形用戶界面的開發(fā)
      在.NET環(huán)境下進(jìn)行nashRemoting開發(fā)

      中宁县| 三穗县| 绍兴县| 仪征市| 宜城市| 兴和县| 鸡泽县| 许昌县| 黄梅县| 遵义县| 广南县| 宜良县| 嘉义市| 青铜峡市| 罗江县| 永川市| 泸州市| 庄浪县| 工布江达县| 宁明县| 铁岭市| 莒南县| 盘锦市| 仙游县| 琼中| 定陶县| 宜州市| 潍坊市| 山西省| 高台县| 焦作市| 临沧市| 禄劝| 苏尼特左旗| 鹤山市| 金寨县| 昌都县| 确山县| 温泉县| 双鸭山市| 汨罗市|