论文部分内容阅读
摘 要: 本文从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并非难事。
关键词: 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并非难事。