劉 慧
[摘要]從熟練Visual Foxpro的用戶角度對(duì)比分析ACCESS與Visual Foxpro的差異,并詳細(xì)闡述ACCESS 中的數(shù)據(jù)庫(kù)對(duì)象及編程方法,引導(dǎo)學(xué)習(xí)者快速過(guò)渡到ACCESS的使用中來(lái)。
[關(guān)鍵詞]ACCESSVisual Foxpro數(shù)據(jù)庫(kù)對(duì)象
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)1110096-01
微軟公司有兩個(gè)流行的桌面數(shù)據(jù)庫(kù)開(kāi)發(fā)工具,一個(gè)是其兼并FOX公司而得到的Visual Foxpro(簡(jiǎn)稱VF),另一個(gè)是微軟自行研制開(kāi)發(fā)的基于WINDOWS環(huán)境的Microsoft ACCESS,后來(lái)ACCESS成為Microsoft OFFICE的一個(gè)成員。隨著OFFICE越來(lái)越流行,越來(lái)越多的用戶也開(kāi)始認(rèn)識(shí)并使用ACCESS,很多VF用戶也開(kāi)始轉(zhuǎn)向使用微軟公司的ACCESS。由于ACCESS與VF在很多方面有較大的差異,如文件的組織方式、數(shù)據(jù)類型、所用的編程語(yǔ)言和編程方法等,使得不少熟悉VF的用戶對(duì)ACCESS學(xué)習(xí)起來(lái)很吃力,一致放棄對(duì)ACCESS的學(xué)習(xí)。但是,ACCESS與VF相比有很多先進(jìn)的方面,VF用戶只要掌握ACCESS的基本概念與編程方法,就能在自己熟悉的VF技術(shù)基礎(chǔ)上快速入門(mén)并深入掌握ACCESS。本文對(duì)VF和ACCESS進(jìn)行一系列的對(duì)比分析,可以幫助熟練VF的用戶更好地學(xué)習(xí)與掌握ACCESS。
一、編程處理語(yǔ)句不同
1.VF與ACCESS的使用與編程方法很相似,但在文件組織方面有所不同:用VF建立的系統(tǒng)通常包含多種不同類型的文件,每個(gè)表、程序、查詢、索引、報(bào)表、菜單等內(nèi)容都以文件的方式存放在磁盤(pán)上,可以通過(guò)項(xiàng)目文件對(duì)其他類型的文件進(jìn)行組織與管理;ACCESS對(duì)數(shù)據(jù)庫(kù)的組織同大型數(shù)據(jù)庫(kù)系統(tǒng)(如SQL SERVER)的數(shù)據(jù)庫(kù)組織比較相似,把數(shù)據(jù)或程序元素稱為對(duì)象,所有的對(duì)象都存儲(chǔ)在一個(gè)物理文件中,而這個(gè)物理文件被稱為數(shù)據(jù)庫(kù)。
2.編程語(yǔ)言不同:在傳統(tǒng)的VF中,表、記錄等數(shù)據(jù)操縱或界面的設(shè)計(jì)采用xbase命令進(jìn)行編程,在后來(lái)新版本中才引入了部分SQL語(yǔ)句,如SELECT;ACCESS是通過(guò)SQL對(duì)表、記錄等數(shù)據(jù)操作,程序及事件代碼的編寫(xiě)采用Visual Basic for Application(低版本的ACCESS用access basic編程),簡(jiǎn)單的程序設(shè)計(jì)用宏。
二、數(shù)據(jù)庫(kù)中包含的內(nèi)容不同
1.ACCESS的數(shù)據(jù)庫(kù)窗口中包含六類不同的數(shù)據(jù)庫(kù)對(duì)象,它們分別是表(Table)、查詢(Query)、窗體(Form)、報(bào)表(Report)、宏(Macro)和模塊(Module)。ACCESS的數(shù)據(jù)庫(kù)如同一個(gè)容器,其中包含了所有的數(shù)據(jù)庫(kù)對(duì)象,與VF的項(xiàng)目文件不同,ACCESS將這些對(duì)象存儲(chǔ)在一個(gè)文件中。
2.雖然VF中的數(shù)據(jù)庫(kù)表也可以設(shè)置字段的輸入掩碼、缺省值、值范圍等字段屬性,但ACCESS中的表字段屬性設(shè)置更為豐富,設(shè)置規(guī)則也更為靈活。在ACCESS中,不需要專門(mén)的命令或操作建立和維護(hù)索引文件,要按某字段建立索引只需在該字段的索引屬性中選擇特定的索引類型即可,索引的建立、維護(hù)和使用都是通過(guò)ACCESS系統(tǒng)來(lái)完成的。在VF中用Index on、set index to等操作就可完成索引的建立、維護(hù)和使用,用戶不必關(guān)心這些內(nèi)容。
3.ACCESS的數(shù)據(jù)庫(kù)中可以創(chuàng)建多個(gè)表,表與表之間能夠建立參照完整性關(guān)系。在VF中要用set relation、set skip命令來(lái)創(chuàng)建這樣的多對(duì)一和一對(duì)多關(guān)系,而ACCESS只需圖形界面操作就可完成一對(duì)多和多對(duì)一關(guān)系的建立,并且通過(guò)連鎖刪除與連鎖更新來(lái)確保相關(guān)表中記錄之間關(guān)系的有效性,且不能意外地刪除或更改相關(guān)數(shù)據(jù)。還需注意的是:VF中的記錄刪除包括邏輯刪除和物理刪除兩種,而ACCESS中的記錄被刪除后就不能恢復(fù)了。
4.查詢(Query):ACCESS中可以進(jìn)行靈活的查詢,其實(shí)質(zhì)就是SQL的數(shù)據(jù)操縱語(yǔ)言,利用查詢可以通過(guò)不同的方法來(lái)查看、更改以及分析數(shù)據(jù),在ACCESS中,對(duì)表、記錄、字段的多數(shù)操作都可通過(guò)查詢來(lái)完成;在進(jìn)行選擇查詢時(shí),其結(jié)果等同于表,可以在表與查詢間建立關(guān)系,查詢結(jié)果也可象表一樣作為窗體和報(bào)表的記錄來(lái)源,利用查詢還能再建查詢。
在VF中,要使用SQL SELECT命令。顯然,ACCESS中選擇查詢比VF中的SQL SELECT命令功能更強(qiáng)大,使用更靈活。
三、表中的記錄瀏覽方法不同
1.在VF中默認(rèn)情況下,表瀏覽窗口中在每條記錄前面都會(huì)出現(xiàn)每條記錄的記錄號(hào),但ACCESS表瀏覽窗口中不會(huì)自動(dòng)出現(xiàn)記錄號(hào),可使用窗體的左下角記錄瀏覽欄上的按鈕改變當(dāng)前窗口的記錄。也可以在表中定義一個(gè)字段類型為“自動(dòng)編號(hào)”的字段,并設(shè)置為第一個(gè)字段,這樣系統(tǒng)會(huì)自動(dòng)在每條記錄前面顯示相應(yīng)的記錄。
2.若只是在窗體中前后移動(dòng)記錄,不需要編寫(xiě)程序,在窗體的設(shè)計(jì)視圖將窗體的navigation button值設(shè)置為true,則在窗體時(shí)就會(huì)出現(xiàn)導(dǎo)航按鈕,用戶通過(guò)單擊導(dǎo)航按鈕前移、后移記錄。
四、數(shù)據(jù)類型有差異
1.ACCESS與VF中的數(shù)值型字段類型定義和使用都不同。在VF的DBF文件中定義數(shù)值型字段需給出字段類型、寬度和小數(shù)位數(shù),在數(shù)值型字段中存放數(shù)據(jù)時(shí),VF只保存規(guī)定的小數(shù)位數(shù)并自動(dòng)進(jìn)行四舍五入。
ACCESS中的數(shù)值型字段存放數(shù)值型數(shù)據(jù)時(shí)需將字段設(shè)置為短整型、長(zhǎng)整型、單精度、雙精度或貨幣型中的一種,在數(shù)值字段保存數(shù)據(jù)時(shí)不能保存固定長(zhǎng)度的小數(shù)位數(shù),也不能自動(dòng)處理小數(shù)的四舍五入問(wèn)題。盡管字段屬性中有小數(shù)位數(shù)和格式,但這兩個(gè)屬性只是確定數(shù)據(jù)的顯示方式而不是保留特定的小數(shù)位數(shù),用戶必須在保存數(shù)值數(shù)據(jù)時(shí)自行處理保留的小數(shù)位數(shù)及四舍五入問(wèn)題。
2.VF用戶使用ACCESS表時(shí)常遇到字段的空值(NULL)問(wèn)題,VF中若字段沒(méi)輸入具體的值,則文本型字段為空格串、數(shù)字型字段為零值;ACCESS中,若字段沒(méi)輸入值則字段的值為NULL,NULL是ACCESS中的特殊常量,表示沒(méi)值,NULL不能賦予非Variant變量。通過(guò)DAO訪問(wèn)記錄的字段時(shí),使用NZ()函數(shù)將NULL轉(zhuǎn)換為字符型空串或數(shù)值型零值。
除此之外,二者還有很多不同點(diǎn),如:ACCESS比VF的安全性高;Access可壓縮運(yùn)行,VF數(shù)據(jù)庫(kù)太大不能壓縮運(yùn)行等等。因此,VF用戶在學(xué)習(xí)ACCESS時(shí),可以從以上幾個(gè)方面理解ACCESS和VF的差異,在平時(shí)的操作中多注意把原先的VF知識(shí)融匯到ACCESS中,就能輕松地學(xué)好ACCESS。
參考文獻(xiàn):
[1]桂思強(qiáng),《ACCESS數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)》,中國(guó)鐵道出版社,2003年9月出版.
[2]史濟(jì)民、湯觀全,《Visual Foxpro及其應(yīng)用系統(tǒng)開(kāi)發(fā)》,清華大學(xué)出版社,2007年4月出版.
作者簡(jiǎn)介:
劉慧,女,山東壽光人,中國(guó)海洋大學(xué)在職碩士生,濰坊科技學(xué)院教師,主要研究方向:數(shù)據(jù)庫(kù)應(yīng)用。