趙長君
摘 要: 本文從xBase用戶的角度對比分析了ACCESS與xBase的差異,并進一步闡述了ACCESS中的數據庫對象及編程方法。
關鍵詞: ACCESS Foxpro 數據庫
微軟公司有兩個流行的桌面數據庫開發工具,一個是其自行研制開發的基于WINDOWS環境的ACCESS,另一個是其兼并FOX公司而得到的Foxpro。dBASE、FoxBase、Foxpro等統稱為xBase,在我國擁有大量的用戶,隨著微軟公司的ACCESS在國際桌面數據庫市場上的迅速崛起及中文OFFICE在我國的深入普及,越來越多的用戶開始使用MSACCESS(中文OFFICE97的組件之一),很多xBase用戶開始轉向或使用微軟公司的ACCESS。由于ACCESS的文件組織、數據類型、編程語言、編程方法等與xBase有較大的差異,致使不少xBase用戶在學習ACCESS時感到困惑,有些用戶甚至僅僅是因為從ACCESS中找不到與xBase相對應的命令而對ACCESS大加抨擊,從而放棄ACCESS的學習。與xBase相比,ACCESS有很多先進特性,xBase用戶一旦掌握ACCESS的基本概念與編程方法,改變“xBase的思維方式”,就能用已有的xBase知識很快地掌握ACCESS。
本文從多方面對xBase和ACCESS進行對比分析,通過對比使傳統的xBASE用戶更好地理解與掌握ACCESS。我們就ACCESS與xBase的主要差異做以下討論。
從大的方面說,ACCESS的使用與編程方法同Visual Foxpro3.0及Visual Foxpro5.0的使用與編程方法非常相似,熟悉Visual Foxpro3.0及以上版本的用戶會非常容易地學會ACCESS。沒有使用過Visual Foxpro的傳統xBase用戶在開始學習ACCESS或Visual Foxpro時,需要從思想上做較大的轉變,這是由于ACCESS及Visual Foxpro都是采用基于事件處理和面向對象的程序設計方法,下文中所談到的xBase指的是Visual Foxpro以下的版本。
文件組織不同:用xBase建立的系統通常包含很多不同類型的文件,每一個表、程序、報表、查詢、索引、菜單等內容都是以文件的方式存放在磁盤上,可以通過項目文件對其他類型的文件進行組織與管理。ACCESS對數據庫的組織同大型后臺數據庫系統(如SQL SERVER)的數據庫組織非常相似,不同數據或程序元素稱為對象,所有的對象都存儲在一個物理文件中,而這個物理文件被稱為數據庫。
編程語言不同:在傳統的xBase 中,表、記錄等數據操縱或是界面的設計采用的是xBase命令進行編程,高版本的Foxpro中引入了部分SQL語句(如SQL-SELECT),主要用來完成數據的查詢;ACCESS中對表、記錄等數據操作主要通過SQL實現,程序及事件代碼的編寫采用Visual Basic for Application(低版本的ACCESS用access basic編程),簡單的程序設計用宏,Visual Basic是更為通用的編程語言。絕大多數計算機編程人員都可以用MS Office Visual Basic進行編程。
編程方法不同:xBase中采用面向過程的程序設計方法,即使是一個用戶輸入界面的設計,也需要較長的一段xBase程序;ACCESS中采用面向對象的程序設計方法,數據處理功能的完成通過改變對象的屬性或執行對象方法實現,程序段通常構成事件過程、對象方法、函數,ACCESS中較少會出現連續的長程序。此外,ACCESS中具有字段級、記錄級、表級數據引用完整性數據約束性在ACCESS中,不需要用專門的命令或操作來建立和維護索引文件,按某字段建立索引只需在該字段的索引屬性中選擇特定的索引類型即可,索引的建立維護和使用都是通過ACCESS系統完成的,在xBase中諸如Index on、set index to等操作不必有用戶關心。
根據需要可在ACCESS的數據庫中創建多個表,表與表之間能夠建立所謂的參照完整性關系,如同在xBase中用set relation、set skip命令創建的多對一和一對多關系一樣,ACCESS只需圖形界面操作就可完成一對多和多對一關系的建立,并且通過連鎖刪除與連鎖更新來確保相關表中記錄之間關系的有效性,不能意外地刪除或更改相關數據。
使用ACCESS表與使用xBase的DBF文件的一個重要差別是所謂“打開”的概念不同,xBase中用USE命令打開DBF文件,實質是在內存建立數據緩沖區提供數據通道,若想查看DBF文件中的數據,需要再使用BROWSE或其他命令,ACCESS中打開一個表相當于xBase中USE+BEOWSE命令,對表中的數據進行處理而不顯示表中的記錄,在ACCESS中通常有兩種做法:一種是用SQL語句更新或改變數據,無須先打開表后執行SQL語句;另一種是用VBA編程通過數據訪問對象(DAO)來操縱表,通過DAO操縱表時,要打開所謂的記錄集(Recordset),xBase中的USE命令與VBA(Visual BASIC for Application)中的Openrecordset方法的作用相類似。
查詢(Query):ACCESS中的查詢本質上就是SQL的數據操縱語,利用查詢可以通過不同的方法來查看、更改及分析數據,相當于Foxpro中的SQL SELECT語句及Foxpro的查詢。在ACCESS中,對表、記錄、字段的多數操作都可通過查詢來完成。例如:在xBase中使用很多的REPLACE...WITH...命令在ACCESS中應當用一個動作查詢來完成(SQL UPDATE)。在ACCESS中建立和使用查詢基本上等同于在后臺數據庫(如:ORACLE、SQL SERVER)中使用SQL命令,Microsoft Jet數據庫引擎的SQL符合ANSI SQL,ACCESS 的SQL實現了幾乎所有的ANSI SQL功能,有些SQL命令在ANSI SQL中沒有。
我們從編程方法、數據查詢、文件組織等方面了解了ACCESS與xBase的差異,結合通用的MS Office Visual Basic編程語言,相信從xBase入手學習MS Office VisualACCESS并非難事。