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