国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ACCESS帶參數(shù)的查詢詳解

2007-08-25 01:30:42吳險峰
智能計算機與應用 2007年4期
關鍵詞:數(shù)據(jù)類型窗體對話框

吳險峰

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

關鍵詞:ACCESS參數(shù)查詢存儲過程

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

1.1在查詢設計器中建立參數(shù)查詢

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2視查詢?yōu)榇鎯^程

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

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

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

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

猜你喜歡
數(shù)據(jù)類型窗體對話框
詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
如何理解數(shù)據(jù)結構中的抽象數(shù)據(jù)類型
正?;謴吞摂M機
試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應用
檔案天地(2019年5期)2019-06-12 05:12:02
Bootlace Worms’Secret etc.
中學科技(2018年12期)2018-12-19 11:22:28
基于LayeredWindow的異形窗體局部刷新
中文信息(2014年2期)2014-03-06 23:49:14
巧設WPS窗體控件讓表格填寫更規(guī)范
快速抓取對話框中的完整信息
電腦迷(2012年22期)2012-04-29 20:30:54
WinCE.net下圖形用戶界面的開發(fā)
在.NET環(huán)境下進行nashRemoting開發(fā)
嘉义市| 马龙县| 青川县| 开远市| 苏州市| 西藏| 焦作市| 赞皇县| 长宁县| 天祝| 台州市| 二手房| 汤阴县| 永寿县| 呼和浩特市| 蓝山县| 随州市| 赣州市| 焦作市| 营口市| 运城市| 万源市| 辰溪县| 五原县| 吉木乃县| 轮台县| 鹿邑县| 凌海市| 迁西县| 垦利县| 正宁县| 治县。| 乌兰察布市| 凌云县| 贡嘎县| 苍南县| 安义县| 翁源县| 安阳县| 佛学| 景宁|