1、Visual FoxPro程序设计 我的计算机,我做主,2,第5章 数据库操作,一. 我们学习VFP的目的是什么?,我们学习VFP的目的就是用VFP做软件。 软件公司开发一个软件就是做一个项目, 这相当于建筑公司盖一座楼就是做一个工程。,5.1 为什么引入项目,二. 一个项目就是一个应用程序包含的所有文件的关系的集合,在VFP中,一个应用程序通常包含多个文件。例如,包括表、数据库、程序、查询、视图、表单、菜单、报表、标签等。但是,这些文件彼此独立、可以存放在不同的文件夹里,既难于管理,又不便于维护。为了解决这个问题,VFP引入项目的概念,项目就是将一个应用程序包含的所有文件关联成一个有机的整体
2、,形成一个项目文件。,3,一. 项目的保存,当我们保存一个项目时,通常就会产生如下两个文件: (1)项目文件: 扩展名为 .PJX (2)项目备注文件:扩展名为 .PJT,5.2 项目的保存和编辑,二. 项目的编辑项目管理器,(1)在VFP中,编辑项目的平台是项目管理器。 (2)要打开项目,首先自动打开项目管理器,然后项目在项目管理器中打开。 (3)项目管理器是组织数据和对象的可视化操作工具。 (4)项目管理器将项目文件中关联的所有文件根据其文件类型放置在不同的选项卡中,并采用图示和树形结构的方式组织和显示这些文件,针对不同类型的文件提供不同的操作。 (5)通过项目管理器可以为项目文件“添加”
3、或“移去”关联对象。,4,5.3 项目的建立,1、建立项目的菜单法,在VFP的菜单栏,2、建立项目的命令法,3、建立项目的向导法,建立一个项目通常有以下两种途径: (1)仅仅建立一个项目文件,用来分类管理其他项目文件项目管理器。 (菜单法、命令法) (2)使用应用程序向导生成一个项目和一个VFP应用程序框架应用程序生成器。(向导法),单击“文件”菜单,单击“新建”命令项(Ctrl+N),选择“项目” 文件类型,单击“新建文件”按钮,出现“创建”对话框,首先输入“项目文件名” 然后单击“保存”命令按钮,在VFP的命令窗口,首先输入建立项目的命令: Create project 项目文件名 ,然后
4、敲回车键 “Enter”,在VFP的菜单栏,单击“文件”菜单,单击“新建”命令项(Ctrl+N),选择“项目” 文件类型,单击“向导”按钮,出现“应用程序向导”对话框,首先输入“项目文件名” 然后单击“确定”命令按钮,说明: (1)项目文件名可以缺省。 如果建立项目的命令中缺省项目文件名,则打开“创建”对话框。 (2)项目文件名可以用?代替。 如果项目文件名用问号?代替,则打开“创建”对话框。,出现“项目管理器”,出现“项目管理器”,出现“应用程序生成器”,5,5.4 项目的打开与关闭,1、打开和关闭的概念,(1)打开项目 打开项目就是将外存中的项目文件调到内存,并将该项目文件显示在项目管理器
5、中。,2、打开项目的操作步骤,3、关闭项目的操作步骤,在VFP的文件菜单或工具栏中,单击“打开”命令,出现一个 “打开”对话框,在项目管理器的标题栏的最右侧,单击“关闭”按钮 则项目管理器自动消失 。,首先选择要打开的“项目文件” 然后单击“确定”,(2)关闭项目 关闭项目就是将内存中的项目文件清除掉。 对于非空项目文件,关闭时会自动保存。 对于空项目文件,关闭时VFP会弹出一个信息提示对话框, 若单击“删除”按钮, 则系统将从外存中删除该空项目文件。 若单击“保持”按钮,则系统将保存该空项目文件。,弹出“项目管理器”,方法1 菜单法打开项目,方法2 命令法打开项目,在VFP的命令窗口,首先输
6、入建立项目的命令: modify project 项目文件名 ,然后敲回车键 “Enter”,出现“项目管理器”,6,5.5 项目管理器的界面,1、项目管理器的界面通常由以下五部分组成: (1)标题栏:在项目管理器的最顶端。 (2)六个选项卡:全部、数据、文档、类、代码、其他。 (3)工作区:以树状文件夹形式分类显示各种文件。 (4)六个命令按钮:新建、添加、修改、浏览、移去、连编。 (5)状态栏:显示对象的说明、路径等。 2、项目管理器中有些选项的前面带有“+”号或“-”号的方框 (1) 带“+”号方框的选项:表示该选项中还有一个或多个子项 (2) 带“-”号方框的选项:表示该选项中没有子项
7、。 (3)单击“+”号方框是展开该选项,单击“-”号是折叠该选项。,3、项目管理器中共有以下六个选项卡 (1)“数据”选项卡,“数据”选项卡用于显示和管理:数据库、自由表、查询三类文件,(2)“文档”选项卡,“文档”选项卡用于显示和管理:表单、报表、标签三类文件。,(3)“类”选项卡,“类”选项卡用于显示和管理:所有的类库文件。,(4)“代码”选项卡,“代码”选项卡用于显示和管理:程序、API库、应用程序三种类型文件。,(5)“其他”选项卡,“其他”选项卡用于显示和管理:菜单、文本文件、位图文件、图标文件等多种文件。,(6)“全部”选项卡,“全部”选项卡用于显示和管理以上所有类型的文件。,4、
8、项目管理器中共有以下六个命令按钮 (1)“新建”命令按钮:创建一个新文件或对象,建立的文件会自动包含在项目中。 (2)“添加”命令按钮:把一个已存在的文件添加到项目。 (3)“修改”命令按钮:在设计器中打开待修改的文件。 (4)“浏览”命令按钮:在浏览窗口中打开指定的表。 (5)“移去”命令按钮:从项目中移去选定的文件或对象。 (6)“连编”命令按钮:连编一个项目或一个应用程序。,7,5.6 项目管理器的使用,一、 创建文件,1、创建文件的步骤 (1)在项目的工作区中选定要创建的文件类型。 (2)单击项目管理器中的“创建”命令按钮或项目菜单中的“新建文件”命令项。 2、创建文件的说明 (1)单
9、击“新建”按钮或选择“新建文件”命令以后,系统将根据选择的文件类型打开相应的设计器。 (2)在项目中创建的文件将自动地包含在该项目中。但使用“文件”菜单中的“新建”命令创建的文件不属于任何项目文件。,二、添加文件,三、修改文件,1、添加文件的步骤 (1)在项目的工作区中选定要添加的文件类型。 (2)单击项目管理器中“添加”命令按钮或项目菜单中的“添加文件”命令项。 (3)在“打开”对话框中选定要添加的文件。 (4)单击“确定”按钮,则系统将选定的文件添加到该项目中。 2、添加文件的说明 说某个项目包含某个文件,其实质是该文件与项目建立了一种关联。这样可以使一个文件可以包含在多个项目中。,1、修
10、改文件的步骤 (1)在项目的工作区中选定要修改的文件。 (2)单击项目管理器中“修改”命令按钮或项目菜单中的“修改文件”命令项。则系统打开相应的设计器。 (3)在设计器中修改选定的文件。 2、修改文件的说明 如果被修改的文件包含在多个项目文件中,那么对一个项目文件中的文件的修改结果对于其他的项目文件也是有效的。,8,5.6 项目管理器的使用,四、 移去文件,1、移去文件的步骤 (1)在项目的工作区中选定要移去的文件。 (2)单击项目管理器中的“移去”命令按钮或项目菜单中的“移去文件”命令项。系统将显示移去文件信息。 (3)做出移去或移去并删除选择。 2、移去文件的说明 移去文件有两种选择。 (
11、1)单击“移去”按钮,系统仅仅从项目中移去所选择的文件,但被移去的文件仍存在于原目录中。 (2)单击“删除”按钮,系统不仅从项目中移去文件,还将从磁盘中删除该文件,文件将不复存在。,五、设置主文件,六、运行程序,1、设置主文件的步骤 (1)在项目的工作区中选定要设置为主文件的文件。 (2)单击鼠标右键,在弹出的快捷菜单中选择“设置主文件”命令项。或者从项目菜单中选择“设置主文件”命令项。 (3)主文件在项目中以黑体显示。 2、设置主文件的说明 (1)一个项目必须指定一个主文件。主文件是应用程序的执行起始点。菜单、表单、查询、源程序等都可以设置为应用程序的主文件。 (2)VFP会默认的指定一个主
12、文件,如果默认指定的主文件不符合要求,则可以手工设置主文件。,1、运行文件的步骤 (1)在项目的工作区中选定要运行的文件。 (2)单击项目管理器中“运行”命令按钮或项目菜单中的“运行文件”命令项。则系统会运行选择的文件。 2、运行文件的说明 可以独立运行的文件有: (1)命令文件(程序文件) (2)查询 (3)表单 (4)菜单 (5),9,5.7 项目管理器的定制,1、项目管理器的移动将鼠标指针放置在窗口的标题栏上并拖动鼠标指针即可移去项目管理器。 2、项目管理器的缩放将鼠标指针指向项目管理器窗口的顶端、底端、两边或四个角上,鼠标变成箭头状,拖动鼠标便可以扩大或缩小项目管理器的大小尺寸。,1、
13、项目管理器的折叠 项目管理器的右上角有一个带向上箭头的【】折叠按钮。 单击折叠按钮可隐去全部选项卡,只剩下项目管理器和选项卡的标题,与此同时,折叠按钮上的向上箭头也改为向下,变为展开按钮【】。 2、项目管理器的展开 项目管理器的右上角有一个带向下箭头的【】展开按钮。 单击展开按钮【】可以展开项目管理器的全部的选项卡,与此同时,展开按钮上的向下箭头也改为向上,变为折叠按钮【】。,1、拆分项目管理器的概念折叠项目管理器窗口后,可以进一步拆分项目管理器,使其中的选项卡成为独立、浮动的窗口,可以根据需要重新安排它们的位置。 2、拆分项目管理器的步骤(1)折叠项目管理器。(2)选定要拆分的选项卡并按住鼠
14、标左键拖曳(3)拖曳选定的选项卡到达目的地后释放鼠标左键即可。 3、还原项目管理器的方法(1)可以单击选项卡上的“关闭”按钮。(2)也可以用鼠标将拆分的选项卡拖曳回项目管理器窗口中。,1、移动与缩放,2、折叠与展开,3、拆分与还原,4、顶层显示与停放,1、选项卡顶层显示的设置对于从项目管理器窗口中拆分出的选项卡,单击选项卡上的图钉图标,可以钉住该选项卡,将其设置为始终显示在屏幕的最顶层,不会被其他窗口遮挡。 2、选项卡顶层显示的取消再次单击图钉图标便取消其“顶层显示”设置。 3、停放项目管理器将项目管理器拖到VFP主窗口的顶部就可以使它像工具栏一样显示在主窗口的顶部。停放后的项目管理器变成了窗
15、口工具栏区域的一部分,不能将其整个展开,但是可以单击每个选项卡来进行相应的操作。对于停放的项目管理器,同样可以从中拖开选项卡。,10,第5章 数据库,一. 用VFP做软件的目的是什么?,我们用VFP做软件的目的就是处理数据。 如果处理的数据量比较小(例如,计算圆面积、计算等差数列的前n项和等),那么在这种情况下,我们不需要任何辅助工具,直接用程序就可以比较好的处理这些数据。但是,如果数据量比较大(例如,要处理陕西省几十万考生的考试成绩和个人信息),那么在这种情况下,我们必须预先做好数据库,在数据库的辅助下,用程序也能比较好地处理这些数据。,5.1 为什么引入数据库,二. 如何理解数据库,一个程
16、序可以看做一个销售中心,待销售的货物可以看作为待处理的数据。 (1)当货物比较少时,例如只有几十件或上百种,就可以以地摊的形式销售,不需要商店,不需要仓库。这就像用程序计算圆面积这样数据量比较少的问题,不需要自由表,不需要数据库。 (2)当货物比较多时,例如有几百种或几千种,就必须以商店的形式销售,但可以没有仓库。这就像用程序处理一个县区考生这样数据量比较多的问题,需要自由表,但可以不需要数据库。 (3)当货物非常多时,例如有几万种或几十万种,就必须以超市的形式销售,这时必须有仓库。这就像用程序处理一个省考生这样数据量非常多的问题,这时必须用数据库辅助。,11,第5章 数据库,一. 数据库设计
17、的概念,数据库的设计分为概念设计与逻辑设计。 概念设计又称为模式设计,其视图设计可以有 自顶向下,由底向上、由内而外。,5.2 数据库的设计,二. 数据库设计的方法步骤,1、数据库的需求分析 了解要处理的信息内容或结果要求IO结构。 (1)需要处理的原始数据是哪些? (2)需要获得的结果数据是哪些? (3)描述需求分析的工具有结构图和UML,2、数据库的概念设计 反映待处理事物间的联系,得到概念模型 (1)需要哪些表? (2)每个表都有哪些属性? (3)所有表之间的对应关系分别是什么? (4)描述概念设计的工具是E-R图和UML,3、数据库的逻辑设计 了解数据的字段属性,得表结构数据模型 (1
18、)表的各字段的数据类型、数据宽度、可否空 (2)表的实体有效性、字段有效性、记录有效性 (3)表的操作触发器、表的参照完整性。 (4)描述表结构的工具是表格,4、数据库的物理设计 了解基本的原始数据,得表记录数据源 (1)确定输入数据的掩码格式 (2)确定输出数据的规范格式 (3)确定向表中输入的基本原始数据有哪些? (4)描述表记录的工具是表格,5、数据库的建立实现 6、数据库的运行和维护,12,第5章 数据库,一. 数据库的概念,在VFP中,数据库是一个管理数据库对象的系统文件,它将关联的数据库表、视图、连接、存储过程等数据库对象从逻辑上进行统一的组织和管理。,5.3 数据库的保存和编辑,
19、三. 数据库的编辑数据库设计器,(1)在VFP中,编辑数据库的平台是数据库设计器。 (2)要编辑数据库,必须在数据库设计器中打开数据库。 (3)数据库设计器是组织数据库中表、视图、连接、存储过程等的可视化操作工具。 (4)通过数据库设计器可以为数据库文件“添加”或“移去”关联的表。,二. 数据库的保存,当我们保存一个数据库时,通常就会产生如下三个文件: (1)数据库文件: 扩展名为 .DBC (2)数据库备注文件:扩展名为 .DCT (3)数据库索引文件:扩展名为 .DCX,13,第5章 数据库,1. 建立,在内存建立一个空的对象,并在编辑器里打开该对象。,5.4 操作VFP对象的一些概念,2
20、. 保存,将内存中的对象存储在(写到)外存储器上称作为保存。,3. 添加,在一个对象里登记另一个对象的关联信息,在这两个对象之间建立关联关系。,4. 移去,把登记的该对象的关联信息清除掉,即取消两个对象之间的关联关系。,5. 打开,把该对象从外存调到内存称作为打开。,6. 修改或编辑,在编辑器里打开内存中的对象,或者在编辑器里打开外存中的对象都称作修改或编辑。,7. 显示或输出,以只读方式显示该对象的内容或结果。,8. 关闭,把该对象从内存中清除掉。,9. 删除,把该对象从外存中清除到回收站(或电脑外)。,10.特定区域,剪贴板是内存的特定区域,回收站是硬盘的特定区域。,14,第5章 数据库,
21、5.5 数据库的建立,1、项目管理器法,方法1 项目管理器法 建立数据库,就是在内存建立一个空的数据库,并且在数据库设计器中打开该数据库。,2、菜单法,3、命令法,在VFP的文件菜单或工具栏中,单击“新建”命令,则出现一个“创建”对话框。,在“创建”对话框中,先单击“数据库”单选按钮,再单击“新建文件”命令按钮,则出现“创建”对话框。,在项目管理器中,在“创建”对话框中,输入数据库名称,并单击“保存”按钮,则出现新建的空的数据库在数据库设计器中打开。,方法2 菜单法,在项目管理器的工作区选定 数据库文件类型。,在项目管理器的命令按钮组处单击“新建”命令按钮。则出现“新建数据库”对话框,单击“新
22、建数据库”命令按钮。则出现“创建”对话框。,在“创建”对话框中输入数据库名称,并单击“保存”按钮。则出现新建的空的数据库在数据库设计器中打开。,方法3 命令法,在VFP的命令窗口,首先输入建立数据库的命令: create database 数据库文件名,然后敲回车键 “Enter” 则在内存中建立一个空的数据库,且将该数据库设置成当前数据库,但并不打开数据库设计器。,以上的三种方法都可以建立一个数据库。但如果指定数据库已经存在,那么很可能会覆盖掉已经存在的数据库(如果SET SAFETY设置为OFF,则会直接覆盖;如果SET SAFETY设置为ON,则会出现警告对话框请用户确认),所以要格外小
23、心。,15,第5章 数据库,5.6 数据库的打开,1、项目管理器法,方法1 项目管理器法 要在数据库中建立表,或者要使用数据库中的表,都必须首先打开数据库。打开数据库就是将数据库从外存调到内存中。,2、菜单法,3、命令法,在VFP的文件菜单或工具栏中,单击“打开”命令,则出现一个“打开”对话框。,在“打开”对话框中,先在“文件类型”列表框中选择“数据库(*.dbc)”类型,再选定具体的“数据库文件”,最后单击“确定”命令按钮,则出现“数据库文件”在数据库设计器中打开。,在项目管理器中,说明:用“菜单法”打开数据库将会使数据库在数据库设计器中打开,并将该数据库设为当前数据库。,方法2 菜单法,在
24、项目管理器的工作区选定 要打开的数据库文件。,方法3 命令法,在VFP的命令窗口,首先输入打开数据库的命令: open database 数据库文件名,然后敲回车键 “Enter” 则将外存中数据库调到内存中,且将该数据库设置成当前数据库,但并不打开数据库设计器。,说明:以上的三种打开数据库方法都可以将一个具体的数据库从外存调到内存中,但打开效果略有不同。 (1)项目管理器法打开并设置为当前 (2)命令法是打开数据库并设置为当前数据库。 (3)菜单法是打开数据库并设置为当前数据库,且打开设计器。,说明:用“项目管理器法”打开数据库,将设置成当前数据库,但 不会打开数据库设计器。,在项目管理器的
25、命令组处单击“打开”,则该数据库被打开并设置为当前数据库。,16,第5章 数据库,5.7 数据库设计器的打开,1、项目管理器法,方法1 项目管理器法 要编辑或修改数据库就必须先在数据库的设计器中打开数据库,然后再在数据库的设计器中修改或编辑数据库内容。,2、菜单法,3、命令法,在VFP的文件菜单或工具栏中,单击“打开”命令,则出现一个“打开”对话框。,在“打开”对话框中,先在“文件类型”列表框中选择“数据库(*.dbc)”类型,再选定具体的“数据库文件”,最后单击“确定”命令按钮,则出现“数据库文件”在数据库设计器中打开。,在项目管理器中,方法2 菜单法,在项目管理器的工作区选定 具体的数据库
26、文件。,方法3 命令法,在VFP的命令窗口,首先输入修改数据库的命令: modify database 数据库文件名,然后敲回车键 “Enter” 则将外存中数据库调到内存中,且在数据库设计器中打开该指定的数据库。,在项目管理器的命令按钮组处单击“修改”命令按钮。则出现“数据库设计器”对话框,17,第5章 数据库,5.8 当前数据库的设置与取消,1、工具栏的数据库列表,方法1 数据库列表法 VFP可以打开多个数据库,但同一时刻只有一个当前数据库。使用工具栏中的数据库列表按钮可以指定某一数据库为当前数据库 。,2、命令法,不指定当前数据库,在VFP的命令窗口中,先输入设置当前数据库的命令 Set
27、 database to 数据库名,然后敲回车键“Enter”。则将指定的数据库设置成当前数据库。,在工具栏中,方法2 命令法,单击“数据库下拉按钮”。出现数据库下拉列表,命令法,在VFP的命令窗口,先输入取消当前数据库的命令: set database to 数据库名,然后敲回车键 “Enter” 则所有打开的数据库都不是当前数据库。,在数据库下拉列表中单击一个数据库,则该数据库为当前数据库。,18,第5章 数据库,5.9 数据库清理和数据库有效性检查,1、数据库清理,“数据库清理”的功能 清除数据库中因表、视图等的变动而引起的具有删除标记的记录,2、数据库有效性检查,“数据库有效性检查”的
28、命令 VALIDATE DATABASE,方法1 “数据库”菜单法 第1步: 打开“数据库设计器”。 第2步: 在“数据库”菜单中单击执行“清理数据库” 命令项。,“数据库有效性检查”的功能 “数据库有效性检查”的功能是检查数据库中的表及索引的正确性,方法2 命令法 在命令窗口中输入并执行以下命令:PACK DATABASE,19,第5章 数据库,5.10 数据库的关闭,1、项目管理器法,方法1 项目管理器法 关闭数据库就是将内存中的数据库清除掉 。,2、命令法,3、关闭所有数据库,在VFP的命令窗口中,先输入关闭当前数据库的命令 Close database,然后敲回车键“Enter”。则将
29、当前数据库关闭掉。,在项目管理器中,方法2 命令法,在项目管理器的工作区中单击选定要关闭“数据库”。,命令法,在VFP的命令窗口,先输入关闭所有数据库的命令: close database all,然后敲回车键 “Enter” 则所有打开的数据库都被关闭掉。,在项目管理器的命令组中单击“关闭”命令按钮。则选定的数据被关闭。,20,第5章 数据库,数据库的删除,1、项目管理器法,方法1 项目管理器法 删除数据库就是将外存中的数据库清除掉 。,2、命令法,数据库函数DBC(),在VFP的命令窗口中,先输入删除数据库的命令 delete database 数据库名|? deletetables re
30、cycle,然后敲回车键“Enter”。则会删除指定的数据库。,在项目管理器中,方法2 命令法,在项目管理器的工作区中单击选定要关闭“数据库”。,(1)函数的格式DBC(),(2)函数的作用返回当前数据库的名称和路径。,在项目管理器的命令组中单击“移去”命令按钮。则出现一个移去对话框。,如果单击移去对话框中的“移去”命令,则从项目中移除该数据库;如果单击移去对话框中的“删除”命令,则在移除数据库的同时,并从外存盘上清除掉 。,(3)函数的返回值的数据类型字符型,(4)函数的说明如果没有当前数据库,则函数DBC( )返回的是空字符串。,(5)函数应用举例OPEN DATABASE E:AA?DB
31、C() &显示E:AA.DBC,说明: (1)功能:从磁盘删除指定的数据库。 (2)数据库名:指定要删除的数据库。 若是问号?,则会打开删除对话框。 (3)Deletetables:若含有该选项,则会以删除数据库以及其所含的表。 (4)recycle: 此选项使其放到回收站,21,一. 什么是数据库表,数据库表,表分为自由表和数据库表两种。 如果一个表不在任何数据库中,则称这个表为自由表。 如果一个表在某一个数据库中,则称这个表为数据库表。,二. 获得数据库表的操作方法,方法1 在项目管理器中“新建”数据库表,方法2 在项目管理器中“添加” 表,22,数据库表,二. 获得数据库表的操作方法,方
32、法3 在数据库设计器中“新建”数据库表,方法4 在数据库设计器中“添加” 表,23,数据库表,二. 获得数据库表的操作方法,方法5 在命令窗口中“新建”数据库表,方法6 在命令窗口中“添加” 表,在命令窗口中: 第1步 建立数据库或打开数据库 Create database 数据库名 或者 Open database 数据库名 第2步 建立数据库表create 表名 或者 Create table 表名 (字段名1 类型(宽度),在命令窗口中: 第1步 建立数据库或打开数据库 Create database 数据库名 或者 Open database 数据库名 第2步 添加表 Add tabl
33、e 原表名 name 长表名,24,三. 数据库表的特有属性,数据库表,(一)数据库表设计器的“字段”选项卡中的特有属性,数据库表的特有属性是数据库的一部分,当表从数据库中移去时,才失去这些特有属性。,25,三. 数据库表的特有属性,数据库表,(二)数据库表设计器的“索引”选项卡中的特有属性,26,三. 数据库表的特有属性,数据库表,(三)数据库表设计器的“表”选项卡中的特有属性,27,四. 设置数据库表的特有属性,数据库表,(一) 设置“字段”选项卡中的特有属性,1、 设置字段“显示” 的“格式”format,(1) “格式”文本框的内容 “格式”文本框中应该键入“格式表达式”。 (2) “
34、格式表达式”的作用 “格式表达式”用于规定字段在浏览窗口或输入时采用的格式。 (3)“格式表达式”的组成:“格式表达式” 由以下的格式码组成。,(4) “格式表达式” 的举例 例1 对“姓名”字段设置格式属性为:AT 例2 对“性别”字段设置格式属性为:M 男, 女,28,四. 设置数据库表的特有属性,数据库表,(一) 设置“字段”选项卡中的特有属性,2、 设置字段“显示” 的“输入掩码”mask,(1) “输入掩码”文本框的内容 “输入掩码”文本框中应该键入“输入掩码表达式”。 (2) “输入掩码表达式”的作用 输入掩码用于“按位”指定字段的输入格式,限制输入数据的范围,控制输入的正确性。
35、不符合规则的数据不能输入,但对已有记录不验证该规则。 (3)“输入掩码表达式”的组成:“输入掩码表达式” 由以下的掩码字符组成。,(4) “输入掩码表达式” 的举例 例1 对“学号”字段设置输入掩码为: 9999999999 例2 对“党团员”字段设置输入掩码为:Y,29,四. 设置数据库表的特有属性,数据库表,(一) 设置“字段”选项卡中的特有属性,3、 设置字段“显示” 的“标题”caption,(1) “标题”文本框的内容 “标题”文本框中应该键入“标题表达式”。 (2) “标题表达式”的作用 显示区的标题文本框用于为浏览窗口、表单或报表中的字段标签键入表达式。 (3)“标题表达式”的组
36、成:“标题表达式” 由任意字符组成。,(4) “标题表达式” 的举例 例1 对“学号”字段设置标题为: 学生学号 例2 对“姓名”字段设置标题为: 学生姓名,30,四. 设置数据库表的特有属性,数据库表,(一) 设置“字段”选项卡中的特有属性,4、 设置 “字段有效性”,(1) “字段有效性” 的“规则”设置 “规则”文本框用于输入对指定字段数据有效性进行检查的规则,它实际上是一个条件。用条件验证该字段数据的合法性。“规则”通常是一个逻辑表达式、函数或过程,也可以用规则框右边的表达式生成器生成规则表达式。 (2) “字段有效性” 的“信息”设置 “信息”文本框用于指定出错提示信息,当该字段输入
37、的数据违反条件时,出错信息将照此显示。信息内容要用字符定界符。即当规则返回逻辑假(.F.)时,将显示的信息内容。 (3) “字段有效性” 的“默认值”设置 “默认值”文本框用于指定字段的默认值。默认值类型与字段的数据类型一致。若大多数记录取相同值(如性别),则可以指定该字段默认值为该相同值。说明:光标离开字段时引起字段有效性的检验,如不符合规则,必须加以改正。 该规则对已有记录也要验证。,(4) 设置“字段有效性” 的举例 例1对“学号”字段设置“规则”为 LEN(ALLTRIM(学号)=10 “信息”为 “学号是10位” “默认值”为” 0802014300” 例2对“性别”字段设置“规则”
38、为: 性别=“男” .OR. 性别=“女” “信息”为: “性别是男或女” “默认值”为 : “女”,31,四. 设置数据库表的特有属性,数据库表,(一) 设置“字段”选项卡中的特有属性,5、 设置 “字段注释”,(1) “字段注释” 的作用 为了提高数据表的使用效率及其共享性,可在表设计器中的字段注释框内输入信息,对字段加以注释,可清楚地掌握字段的属性、意义及特殊用途等。 (2) “字段注释” 的设置 字段注释信息需用双引号定界。 (3) “字段注释” 的出现 当在项目管理器中选择字段时,字段注释信息显示在项目管理器的底部。,(4) 设置“字段注释” 的举例 例如对“身份证号”字段设置“字段
39、注释”为 : “身份证号的第1、2位是省代码,第3、4位是地市代码,第5、6位是县区代码,第7-14位是出生日期,第15-17位是出生日期相同者的排序号且奇数代表男,偶数代表女,第18位是校验码“,32,四. 设置数据库表的特有属性,数据库表,(二) 设置“索引”选项卡中的特有属性,(1) “主索引” 的作用 主索引是一个不允许索引表达式值重复的索引。如果将一个字段指定为建立主索引的关键字段,那么当这个字段中出现重复值时,系统将会提示错误。一个数据库表只能有一个主索引,而自由表没有主索引。 (2) “主索引” 的设置 字段注释信息需用双引号定界。 在表设计器的“索引”选项卡中,可以根据需要改变
40、索引的“索引类型” 。即通过“索引类型”设置数据库表的“主索引”。,(3) 设置“主索引” 的举例 例如将“学号”字段设置“主索引”,33,四. 设置数据库表的特有属性,数据库表,(三) 设置“表”选项卡中的特有属性,1、 设置 “表名”,(1) “表名”文本框的内容 “表名”文本框中应该键入没有定界符的“字符串”。 (2) “表名”的长度 “表名”最多可以由128个字符构成。 (3)“表名”的作用:“表名” 出现在浏览窗口中。 (4)说明:使用长表名打开表时,表所属数据库必须打开并且是当前数据库。而使用表文件名打开表时如果所属数据库未打开则系统自动打开数据库。,(5) “表名” 的举例 例如
41、 将“学籍表” 设置为:咸阳师范学院外语系08级学生学籍表,34,四. 设置数据库表的特有属性,数据库表,(三) 设置“表”选项卡中的特有属性,2、 设置 “表注释”,(1) “表注释”文本框的内容 “表注释”文本框中键入没有定界符的“字符串”。 (2)“表注释”的作用 “表注释” 出现在项目管理器的底部。,(3) “表注释” 的举例 例如 将“学籍表” 的“表注释”设置为:这是一个学生情况表,反映所有学生的自然情况,例如学号、姓名、性别、出生日期等,35,四. 设置数据库表的特有属性,数据库表,(三) 设置“表”选项卡中的特有属性,3、 设置 “记录有效性”,(1) “记录有效性” 的“规则
42、”设置 “记录有效性”的 “规则”是用来检查同一记录中不同字段之间的逻辑关系。 “记录有效性” 的“规则”是一个逻辑表达式,应含有两个或两个以上字段,也可以通过右侧按钮进入“表达式生成器”生成“记录有效性” 的“规则” 。 (2) “记录有效性” 的“信息”设置 “记录有效性” 的“信息”用于指定出错提示信息。出错提示信息内容必须用西文引号括起。即当规则返回逻辑假(.F.)时,将显示的信息内容。 (3) 说明 “记录有效性”的 “规则”的内容:是同一记录中不同字段之间的逻辑关系表达式。 “记录有效性”的 “规则”的激活时机:记录指针离开当前记录时, “记录有效性”的 “规则”被激活的。 “记录
43、有效性”的 “规则”的验证范围: “记录有效性”的 “规则”设置后,对已经存在的记录也要验证。,(4) 设置“记录有效性” 的举例 例如 对每条记录设置“记录有效性”的“规则”为 LEN(ALLTRIM(学号)=10 .and. ( 性别=“男” .or. 性别=“女”) “记录有效性”的“信息”为 “ 学号等于10位且性别是 男 或 女 “,36,四. 设置数据库表的特有属性,数据库表,(三) 设置“表”选项卡中的特有属性,4、 设置 “触发器”,(1) “触发器” 的作用 “触发器”是一个在插入、删除或更新表中记录时被激活的表达式。“触发器”用于在插入、更新、删除记录时,运行一个逻辑表达式
44、或存储过程来检测操作的合法性,其返回结果是一个逻辑值。在字段规则、记录规则、SQL的主键约束和触发器中,触发器是最后执行的。 (2) “触发器” 的种类 触发器有插入触发器、更新触发器、删除触发器三种: 插入触发器:用于检测插入是否合法,返回.T.时允许插入,否则返回.F.时拒绝插入。 更新触发器:用于检测更新是否合法,返回.T.时允许更新,否则返回.F.时拒绝更新。 删除触发器:用于检测删除(打上 删除标记)是否合法,返回.T.时允许删除,否则返回.F.时拒绝删除。 (3)说明:触发器设置对已经存在的记录不做检查。,(4) 设置“触发器” 的举例 例如 设置的“触发器”如下: 插入触发器设置
45、为: recno()1 更新触发器设置为: recno()2 删除触发器设置为: recno()30,37,五. 数据完整性总结,数据库表,38,一. 工作区,多个表的同时使用,2、工作区的逻辑功能,(一)什么是工作区,1、工作区的物理特征,一个工作区是内存的一块区域,VFP可以提供32767(216-1)个工作区。,(1)一个工作区的功能 一个工作区只能打开一个表文件,如果在同一个工作区中打开了另一个表文件,则系统先自动关闭前一个已打开的表文件,然后再打开指定的表文件。 (2)多个工作区的功能 如果要同时使用多个表文件,就必须在不同的工作区中分别打开。 同时打开的表文件数与使用的工作区数是相
46、等的。,39,一. 工作区,多个表的同时使用,方法2、用字母标识工作区工作区别名,(二)工作区的标识,方法1、用数字标识工作区工作区号,一个用1- 32767分别表示不同的工作区。但用0标识未被使用的最小工作区。,(1)前10个工作区的标识 : 前10个工作区用A - J 这十个字母来标识。 (2)11- 32767工作区的标识 : 11- 32767工作区用W11 W32767来标识。,方法3、用表名或表的别名来标识工作区表的名称,用工作区中打开的表的表名或表的别名来标识工作区。,40,一. 工作区,多个表的同时使用,2、系统默认的当前工作区,(三)当前工作区,1、当前工作区的概念,虽然VF
47、P可以使用 32767工作区。但在任何时刻,VFP只能使用一个工作区,正在使用的工作区称为当前工作区。,如果没有指定当前工作区,则系统默认第1个工作区是当前工作区,即系统默认在第1个工作区中打开和关闭表。,3、指定当前工作区的命令,(1)命令格式: select 工作区标识 (2)命令功能: 将指定的工作区设为当前工作区。 (3)命令说明: 工作区标识可以是工作区号,或工作区别名,或表的名称。,(1)命令格式:use 表名 alias 表别名 (2)命令功能:在打开表的同时为表取别名。 (3)命令举例: use student alias stu,4、表别名命名的命令,5、指定当前工作区命令的
48、举例,Select 3 Select C Select stu Select 0 Select w15,6、特别强调的是,(1)定义表别名: use 表名 alias 表别名 (2)一旦为表取了别名,就必须使用表别名。 (3) 0号工作区表示未用工作区中区号最小 的工作区。,41,二. 工作区互访,多个表的同时使用,2、工作区互访的命令,在实际工作中,为了完成某个任务,除了使用当前工作区的表中数据以外,还要使用其它工作区的表中数据。VFP支持在当前工作区中调用其它工作区的表中数据,这种在当前工作区中访问其它工作区的表中数据的操作称为工作区互访。,1、工作区互访的概念,(1)命令格式1: 工作区别名 | 表的名称 . 字段名 (2)命令格式2: 工作区别名 | 表的名称 - 字段名,3、工作区互访命令的举例,42,三. 两个表的记录之间存在的对应关系,多个表的同时使用,(2)一对多(1:m) (one to many relationship),父表中的一条记录对应子表中的一条记录。班级与班主任的联系。,