《《VisualFoxpro程序设计》第 3 章 表的基本操作.ppt》由会员分享,可在线阅读,更多相关《《VisualFoxpro程序设计》第 3 章 表的基本操作.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 3 章 表的基本操作表的基本操作 3.1表的建立和修改表的建立和修改3.2表的维护命令表的维护命令3.3表数据的替换表数据的替换3.4表的设置表的设置3.1表的建立和修改表的建立和修改表的建立和修改各分两部分进行,即分别是表表的建立和修改各分两部分进行,即分别是表表的建立和修改各分两部分进行,即分别是表表的建立和修改各分两部分进行,即分别是表结构与表数据。新建一张表不仅要有表的结构,且结构与表数据。新建一张表不仅要有表的结构,且结构与表数据。新建一张表不仅要有表的结构,且结构与表数据。新建一张表不仅要有表的结构,且表中也要有具体数据。表的修改也是一样,不仅可表中也要有具体数据。表的修改也是
2、一样,不仅可表中也要有具体数据。表的修改也是一样,不仅可表中也要有具体数据。表的修改也是一样,不仅可对表的结构进行修改,也可对表中的数据进行修改。对表的结构进行修改,也可对表中的数据进行修改。对表的结构进行修改,也可对表中的数据进行修改。对表的结构进行修改,也可对表中的数据进行修改。3.1.1建立表建立表1设计表的结构设计表的结构人们在工作、学习和生活中经常遇到二维的表人们在工作、学习和生活中经常遇到二维的表人们在工作、学习和生活中经常遇到二维的表人们在工作、学习和生活中经常遇到二维的表格,表格,表格,表格,表3-13-1所示的学生信息表就是一个二维表。所示的学生信息表就是一个二维表。所示的学
3、生信息表就是一个二维表。所示的学生信息表就是一个二维表。学学 号号姓名姓名性别性别出生年月出生年月家庭住址家庭住址备注备注20030101何兰何兰.F.1981.12成都成都Memo20030102铁玲铁玲.F.1982.1北京北京memo20030201焦建焦建.T.1981.5福建福建Memo20020510尹超尹超.T.1981.9拉萨拉萨memo20030611杜娇杜娇.F.1982.4贵阳贵阳memo表表3-1学生信息表学生信息表表由结构和数据两部分组成。表由结构和数据两部分组成。表由结构和数据两部分组成。表由结构和数据两部分组成。建立表结构就是定义各个字段的属性,基本的字段建立表结
4、构就是定义各个字段的属性,基本的字段建立表结构就是定义各个字段的属性,基本的字段建立表结构就是定义各个字段的属性,基本的字段属性由四部分组成,称为字段四要素。包括字段名、属性由四部分组成,称为字段四要素。包括字段名、属性由四部分组成,称为字段四要素。包括字段名、属性由四部分组成,称为字段四要素。包括字段名、字段类型、字段宽度和小数位数。字段类型、字段宽度和小数位数。字段类型、字段宽度和小数位数。字段类型、字段宽度和小数位数。(1)字段名)字段名字段名用来标识字段,它是一个以字母或汉字开头,字段名用来标识字段,它是一个以字母或汉字开头,字段名用来标识字段,它是一个以字母或汉字开头,字段名用来标识
5、字段,它是一个以字母或汉字开头,长度不超过长度不超过长度不超过长度不超过1010的字母、汉字、数字和下划线序列。的字母、汉字、数字和下划线序列。的字母、汉字、数字和下划线序列。的字母、汉字、数字和下划线序列。表名的命令规则随操作系统而定。表名的命令规则随操作系统而定。表名的命令规则随操作系统而定。表名的命令规则随操作系统而定。(2)字段类型与宽度)字段类型与宽度字段类型、宽度及小数和位数属性都用来描述字段字段类型、宽度及小数和位数属性都用来描述字段字段类型、宽度及小数和位数属性都用来描述字段字段类型、宽度及小数和位数属性都用来描述字段值,表值,表值,表值,表3-23-2列出了字段的数据类型与宽
6、度。列出了字段的数据类型与宽度。列出了字段的数据类型与宽度。列出了字段的数据类型与宽度。(3)小数位数)小数位数学号学号姓名姓名VFP高等数学高等数学英语英语总分总分20030101何兰何兰90858225720030102铁玲铁玲86767423620030201焦建焦建62655017720020510尹超尹超83909526820030611杜娇杜娇898255226表表3-3学生成绩表学生成绩表字字 段段 名名类型类型宽度宽度小数位数小数位数学号学号C8姓名姓名C6VFPN51高等数学高等数学N51英语英语N51总分总分N51表表3-4学生成绩表的结构学生成绩表的结构2建立与修改表结构
7、的命令建立与修改表结构的命令VFP中建立任何文件都可以通过中建立任何文件都可以通过3种种方式:菜单方式、命令方式和项目设计器方式:菜单方式、命令方式和项目设计器建立。建立。(1)表结构的建立)表结构的建立命令格式:命令格式:命令格式:命令格式:CREATE TABLE CREATE TABLE (,),2)功能:建立一个由功能:建立一个由功能:建立一个由功能:建立一个由 表示的表,表中含有指定的字段。表示的表,表中含有指定的字段。表示的表,表中含有指定的字段。表示的表,表中含有指定的字段。例例例例3-13-1建立学生成绩表建立学生成绩表建立学生成绩表建立学生成绩表stu_gra.dbfstu_
8、gra.dbf。CREATE TABLE CREATE TABLE stu_grastu_gra(学号(学号(学号(学号C C(8 8),姓名),姓名),姓名),姓名C C(6 6),),),),VFP NVFP N(5 5,1 1),高等数学),高等数学),高等数学),高等数学N N(5 5,1 1),英语),英语),英语),英语N N(5 5,1 1)LIST STRUCTURE&LIST STRUCTURE&主屏幕显示主屏幕显示主屏幕显示主屏幕显示stu_gra.dbfstu_gra.dbf的结构的结构的结构的结构 LIST&LIST&主屏幕显示所有记录主屏幕显示所有记录主屏幕显示所有记
9、录主屏幕显示所有记录图图3.1学生成绩表学生成绩表stu_gra.dbf图图3.2“新建新建”窗口窗口 图图3.3“项目管理器项目管理器”窗口窗口 图图3.4“字段字段”选项卡选项卡(2)表结构的修改)表结构的修改命令格式:命令格式:ALTER TABLE ADD|ALTER COLUMN,ALTER TABLE DROP COLUMN|RENAME COLUMNTO功能:修改功能:修改 表示的表的结构。表示的表的结构。3表数据的输入表数据的输入 建立表结构后若要立即输入数据,就建立表结构后若要立即输入数据,就会出现记录编辑窗口,如图会出现记录编辑窗口,如图3.5所示。此时所示。此时窗口中各字
10、段的排列次序及字段名右侧的窗口中各字段的排列次序及字段名右侧的文本区宽度都与表结构定义相符。文本区宽度都与表结构定义相符。图图3.5记录编辑记录编辑(1)数据输入要点)数据输入要点(2)编辑窗口的打开和关闭)编辑窗口的打开和关闭4表的打开和关闭表的打开和关闭(1)打开表)打开表打开表有多种方法,可以用命令打开,也可由打开表有多种方法,可以用命令打开,也可由打开表有多种方法,可以用命令打开,也可由打开表有多种方法,可以用命令打开,也可由菜单和项目管理器打开。菜单和项目管理器打开。菜单和项目管理器打开。菜单和项目管理器打开。命令格式:命令格式:命令格式:命令格式:USEUSEEXCLUSIVE|S
11、HAREEXCLUSIVE|SHARE功能:在当前工作区中打开或关闭表。表打开时,功能:在当前工作区中打开或关闭表。表打开时,功能:在当前工作区中打开或关闭表。表打开时,功能:在当前工作区中打开或关闭表。表打开时,若该表有备注型或通用型字段,则自动打开同名的若该表有备注型或通用型字段,则自动打开同名的若该表有备注型或通用型字段,则自动打开同名的若该表有备注型或通用型字段,则自动打开同名的.FPT.FPT文件。文件。文件。文件。图图3.6以菜单方式打开表以菜单方式打开表(2)关闭表)关闭表可用以下命令来关闭表。可用以下命令来关闭表。图图3.7以项目管理器方式打开表以项目管理器方式打开表3.1.2
12、修改表修改表数据表的修改和建立表大致相同,分为表结构数据表的修改和建立表大致相同,分为表结构数据表的修改和建立表大致相同,分为表结构数据表的修改和建立表大致相同,分为表结构的修改和表记录的修改。的修改和表记录的修改。的修改和表记录的修改。的修改和表记录的修改。1表结构的修改表结构的修改命令方式:命令方式:命令方式:命令方式:命令格式:命令格式:命令格式:命令格式:MODIFY STRUCTUREMODIFY STRUCTURE功能:修改当前表的结构。功能:修改当前表的结构。功能:修改当前表的结构。功能:修改当前表的结构。2表数据的修改表数据的修改(1)命令格式:)命令格式:EDIT(2)命令格
13、式:)命令格式:BROWSE图图3.8BROWSE浏览式修改窗口浏览式修改窗口3.2表的维护命令表的维护命令3.2.1记录指针的移动记录指针的移动VFP采用一个记录指针指向一条记录的采用一个记录指针指向一条记录的方式。记录定位就是将记录指针指向某一条方式。记录定位就是将记录指针指向某一条记录,指针所指向的这一条记录称为当前记记录,指针所指向的这一条记录称为当前记录,用录,用RECNO()函数可以取出当前表中当前函数可以取出当前表中当前记录的记录号。当表打开时,记录指针总是记录的记录号。当表打开时,记录指针总是指向第一个记录。只有利用记录指针的移动指向第一个记录。只有利用记录指针的移动才能对记录
14、中的数据进行读取。才能对记录中的数据进行读取。1记录绝对移动命令记录绝对移动命令命令格式命令格式1:GO TO TOP|BOTTOM命令格式命令格式2:GOTO 2记录相对移动命令记录相对移动命令命令格式:命令格式:SKIP 功能:从当前记录开始移动记录指针,功能:从当前记录开始移动记录指针,表示移位记录的个数。表示移位记录的个数。3.2.2添加记录添加记录向表中添加记录有两种方式,它们分向表中添加记录有两种方式,它们分别是插入记录和追加记录。插入记录就是在别是插入记录和追加记录。插入记录就是在当前记录的前后插入一条新记录。追加记录当前记录的前后插入一条新记录。追加记录就是在表的最后记录的后面
15、追加一条新记录。就是在表的最后记录的后面追加一条新记录。1记录的插入记录的插入命令格式:命令格式:INSERT BLANKBEFORE该命令有以下该命令有以下该命令有以下该命令有以下4 4种变化形式。种变化形式。种变化形式。种变化形式。INSERT INSERT功能:在当前记录的后面插入一条新的记录,并立功能:在当前记录的后面插入一条新的记录,并立功能:在当前记录的后面插入一条新的记录,并立功能:在当前记录的后面插入一条新的记录,并立即进入记录编辑窗口,等待用户输入记录数据。即进入记录编辑窗口,等待用户输入记录数据。即进入记录编辑窗口,等待用户输入记录数据。即进入记录编辑窗口,等待用户输入记录
16、数据。INSERT BEFORE INSERT BEFORE功能:在当前记录的前面插入一条新的记录,并立功能:在当前记录的前面插入一条新的记录,并立功能:在当前记录的前面插入一条新的记录,并立功能:在当前记录的前面插入一条新的记录,并立即进入记录编辑窗口,等待用户输入记录数据。即进入记录编辑窗口,等待用户输入记录数据。即进入记录编辑窗口,等待用户输入记录数据。即进入记录编辑窗口,等待用户输入记录数据。INSERT BLANK INSERT BLANK功能:在当前记录的后面插入一条空白记录,不进功能:在当前记录的后面插入一条空白记录,不进功能:在当前记录的后面插入一条空白记录,不进功能:在当前记
17、录的后面插入一条空白记录,不进入记录编辑窗口。入记录编辑窗口。入记录编辑窗口。入记录编辑窗口。INSERT BEFORE BLANK INSERT BEFORE BLANK 功能:在当前记录的前面插入一条空白记录,不进功能:在当前记录的前面插入一条空白记录,不进功能:在当前记录的前面插入一条空白记录,不进功能:在当前记录的前面插入一条空白记录,不进入记录编辑窗口。入记录编辑窗口。入记录编辑窗口。入记录编辑窗口。2记录的追加记录的追加INSERTINSERT命令可以在表的任意位置插入新记录,但命令可以在表的任意位置插入新记录,但命令可以在表的任意位置插入新记录,但命令可以在表的任意位置插入新记录
18、,但若要在表尾追加新记录则需先将记录指针移到末记若要在表尾追加新记录则需先将记录指针移到末记若要在表尾追加新记录则需先将记录指针移到末记若要在表尾追加新记录则需先将记录指针移到末记录,下面的命令都可直接在表尾追加记录。录,下面的命令都可直接在表尾追加记录。录,下面的命令都可直接在表尾追加记录。录,下面的命令都可直接在表尾追加记录。(1)INSERT-SQL命令命令命令格式一:命令格式一:命令格式一:命令格式一:INSERT INTO INSERT INTO 表名表名表名表名(字段名字段名字段名字段名11,字段名,字段名,字段名,字段名2 2,)VALUES()VALUES(表达式表达式表达式表
19、达式11,表达式,表达式,表达式,表达式,)功能:在表尾追加一个新记录,并直接输入记录数功能:在表尾追加一个新记录,并直接输入记录数功能:在表尾追加一个新记录,并直接输入记录数功能:在表尾追加一个新记录,并直接输入记录数据。据。据。据。(2)APPEND命令命令APPENDAPPEND命令也可在表尾追加记录,但它只可追加空白记录或以命令也可在表尾追加记录,但它只可追加空白记录或以命令也可在表尾追加记录,但它只可追加空白记录或以命令也可在表尾追加记录,但它只可追加空白记录或以交互方式填写记录数据。交互方式填写记录数据。交互方式填写记录数据。交互方式填写记录数据。命令格式一:命令格式一:命令格式一
20、:命令格式一:APPEND BLANKAPPEND BLANK(3)APPEND FROM命令命令该命令用于追加成批记录。该命令用于追加成批记录。该命令用于追加成批记录。该命令用于追加成批记录。命令格式:命令格式:命令格式:命令格式:APPEND FROMAPPEND FROMFIELDSFIELDSFORFOR;TYPEDELIMITEDWITHTYPEDELIMITEDWITH|WITH|WITH TAB|SDF|XLS TAB|SDF|XLS 功能:在当前表末尾追加一批记录,这些记录来自于另一文件。功能:在当前表末尾追加一批记录,这些记录来自于另一文件。功能:在当前表末尾追加一批记录,这
21、些记录来自于另一文件。功能:在当前表末尾追加一批记录,这些记录来自于另一文件。例例3-2设设stu_gra.dbf是只有结构而无记录是只有结构而无记录的表,现需将表的表,现需将表stu_info.dbf中所有记录的学中所有记录的学号和姓名字段的值追加到表号和姓名字段的值追加到表stu_gra.dbf中。中。*stu_info.dbf中中5个记录的个记录的2个字段值追加到个字段值追加到stu_gra.dbf的末尾。的末尾。APPEND FROM stu_info FIELDS 学号学号,姓姓名名例例3-2设设stu_gra.dbf是只有结构而无记录是只有结构而无记录的表,现需将的文本文件的表,现
22、需将的文本文件stu_info.txt的记的记录添入录添入stu_gra.dbf的末尾,如图的末尾,如图3.9所示。所示。USE stu_graAPPEND FROM STU_INFO SDF&stu_info.txt是系统数据格式的文是系统数据格式的文本文件本文件图图3.9标准纯文本文件标准纯文本文件 3.2.3记录的删除和恢复记录的删除和恢复删除记录有两种形式。删除记录有两种形式。第一种是逻辑删除,分为两步:在要第一种是逻辑删除,分为两步:在要删除的记录上先加注删除标记,确定要删删除的记录上先加注删除标记,确定要删除时再用除时再用PACK命令将带有删除标记的记命令将带有删除标记的记录在表中
23、进行物理删除操作。如果带有删录在表中进行物理删除操作。如果带有删除标记的记录中有些记录还有用,还可以除标记的记录中有些记录还有用,还可以将这些有用记录的删除标记去除。无论界将这些有用记录的删除标记去除。无论界面操作还是命令方式都是一样的。面操作还是命令方式都是一样的。1逻辑删除记录命令逻辑删除记录命令命令格式:命令格式:DELETEFORWHILE功能:对当前表在指定功能:对当前表在指定内满足内满足的记录加上逻辑删除标记。若的记录加上逻辑删除标记。若缺省,则默认为当前记录。缺省,则默认为当前记录。2物理删除记录命令物理删除记录命令命令格式:命令格式:命令格式:命令格式:PACKPACK功能:将
24、带有逻辑删除标记的记录物理上进行删除功能:将带有逻辑删除标记的记录物理上进行删除功能:将带有逻辑删除标记的记录物理上进行删除功能:将带有逻辑删除标记的记录物理上进行删除操作。删除后不可恢复。操作。删除后不可恢复。操作。删除后不可恢复。操作。删除后不可恢复。如需物理删除,可连用如需物理删除,可连用如需物理删除,可连用如需物理删除,可连用DELETEDELETE和和和和PACKPACK命令:命令:命令:命令:USE USE stu_grastu_graDELETE ALL FOR DELETE ALL FOR 英语英语英语英语 60 60&为所有英语为所有英语为所有英语为所有英语成绩不及格的记录加
25、上逻辑删除标记成绩不及格的记录加上逻辑删除标记成绩不及格的记录加上逻辑删除标记成绩不及格的记录加上逻辑删除标记PACKPACK&物理上物理上物理上物理上删除带有逻辑删除标记的记录删除带有逻辑删除标记的记录删除带有逻辑删除标记的记录删除带有逻辑删除标记的记录LISTLIST3恢复记录命令恢复记录命令记录的恢复是指去掉记录前的逻辑删除标记录的恢复是指去掉记录前的逻辑删除标记录的恢复是指去掉记录前的逻辑删除标记录的恢复是指去掉记录前的逻辑删除标记,但已被物理删除的记录是不可恢复的。记,但已被物理删除的记录是不可恢复的。记,但已被物理删除的记录是不可恢复的。记,但已被物理删除的记录是不可恢复的。命令格
26、式:命令格式:命令格式:命令格式:RECALLRECALLFORFORWHILEWHILE功能:对当前表在指定功能:对当前表在指定功能:对当前表在指定功能:对当前表在指定 内满足内满足内满足内满足 的记录去掉逻辑删除标记。若的记录去掉逻辑删除标记。若的记录去掉逻辑删除标记。若的记录去掉逻辑删除标记。若 缺省,只缺省,只缺省,只缺省,只恢复当前记录。恢复当前记录。恢复当前记录。恢复当前记录。4记录清除命令记录清除命令命令格式:命令格式:ZAP功能:删除当前表中的所有记录。功能:删除当前表中的所有记录。执行执行ZAP命令相当于执行命令相当于执行DELETE ALL和和PACK两条命令。两条命令。3
27、.2.4表的复制表的复制对已有的表进行复制可以得到它的一个副本,对已有的表进行复制可以得到它的一个副本,是保护数据安全的措施之一。是保护数据安全的措施之一。1复制任何文件复制任何文件命令格式:命令格式:COPY FILE TO 文件文件功能:从功能:从文件复制得到文件复制得到文件。文件。2从表复制出表或其他类型的文件从表复制出表或其他类型的文件命令格式:命令格式:命令格式:命令格式:COPY TO COPY TO FORFORWHILEWHILE FIELDS FIELDS|FIELDS LIKE|FIELDS LIKE|FIELDS EXCEPT|FIELDS EXCEPT TYPESDF|
28、XLS|DELIMITEDWITH TYPESDF|XLS|DELIMITEDWITH|WITH BLANK|WITH TAB|WITH BLANK|WITH TAB功能:将当前表中选定的部分记录和部分字段复制功能:将当前表中选定的部分记录和部分字段复制功能:将当前表中选定的部分记录和部分字段复制功能:将当前表中选定的部分记录和部分字段复制成一个新表或其他类型的文件。成一个新表或其他类型的文件。成一个新表或其他类型的文件。成一个新表或其他类型的文件。例例例例3-33-3复制表示例。复制表示例。复制表示例。复制表示例。USE USE stu_grastu_gra*对对对对stu_gra.dbfs
29、tu_gra.dbf原样复制,同时生成原样复制,同时生成原样复制,同时生成原样复制,同时生成stu_gra1.dbfstu_gra1.dbf与与与与stu_gra1.fptstu_gra1.fptCOPY TO stu_gra1 COPY TO stu_gra1 *从从从从stu_gra.dbfstu_gra.dbf中抽出两个字段,生成中抽出两个字段,生成中抽出两个字段,生成中抽出两个字段,生成stu_gra2.dbfstu_gra2.dbfCOPY TO stu_gra2 FIELDSCOPY TO stu_gra2 FIELDS学号,姓名学号,姓名学号,姓名学号,姓名例例例例3-43-4以
30、系统数据格式将以系统数据格式将以系统数据格式将以系统数据格式将stu_gra.dbfstu_gra.dbf的前的前的前的前2 2个记录复制到文本个记录复制到文本个记录复制到文本个记录复制到文本文件。文件。文件。文件。USE USE stu_grastu_graCOPY TO stu_gra1 NEXT 3 SDF© TO stu_gra1 NEXT 3 SDF&以系统数据格式复制,以系统数据格式复制,以系统数据格式复制,以系统数据格式复制,产生文本文件产生文本文件产生文本文件产生文本文件stu_gra1.txtstu_gra1.txtTYPE stu_gra1.txt&TYPE stu
31、_gra1.txt&用用用用TYPE TYPE 命令显示文本文件命令显示文本文件命令显示文本文件命令显示文本文件stu_gra1.txtstu_gra1.txt的内容的内容的内容的内容从例从例从例从例3-43-4中可知,系统数据格式文件中的记录都是定中可知,系统数据格式文件中的记录都是定中可知,系统数据格式文件中的记录都是定中可知,系统数据格式文件中的记录都是定长的且以回车符结尾;数据之间无分隔符,数据也无长的且以回车符结尾;数据之间无分隔符,数据也无长的且以回车符结尾;数据之间无分隔符,数据也无长的且以回车符结尾;数据之间无分隔符,数据也无定界符;记录中每个字段的宽度固定,字段数据不足定界符
32、;记录中每个字段的宽度固定,字段数据不足定界符;记录中每个字段的宽度固定,字段数据不足定界符;记录中每个字段的宽度固定,字段数据不足宽度时,数值型字段置前导空格,字符型字段则后补宽度时,数值型字段置前导空格,字符型字段则后补宽度时,数值型字段置前导空格,字符型字段则后补宽度时,数值型字段置前导空格,字符型字段则后补空格;日期型字段改变为空格;日期型字段改变为空格;日期型字段改变为空格;日期型字段改变为yyyymmddyyyymmdd的形式,逻辑型的形式,逻辑型的形式,逻辑型的形式,逻辑型字段两侧的圆点被去除,备注型和通用型字段被舍弃。字段两侧的圆点被去除,备注型和通用型字段被舍弃。字段两侧的圆
33、点被去除,备注型和通用型字段被舍弃。字段两侧的圆点被去除,备注型和通用型字段被舍弃。若例中若例中若例中若例中COPYCOPY命令的命令的命令的命令的SDFSDF改为改为改为改为XLSXLS,将产生文件,将产生文件,将产生文件,将产生文件stu_gra1.xlsstu_gra1.xls。该文件在。该文件在。该文件在。该文件在ExcelExcel中打开后与中打开后与中打开后与中打开后与VFPVFP表显示表显示表显示表显示形式一致。形式一致。形式一致。形式一致。若例中若例中若例中若例中COPYCOPY命令的命令的命令的命令的SDFSDF改为改为改为改为DELIMITEDDELIMITED,将产生,将
34、产生,将产生,将产生文件文件文件文件stu_gra2.txtstu_gra2.txt,用,用,用,用TYPETYPE命令显示如图命令显示如图命令显示如图命令显示如图3.103.10所示。所示。所示。所示。图图3.10非标准纯文本文件非标准纯文本文件 3复制表的结构复制表的结构命令格式:命令格式:命令格式:命令格式:COPY STRUCTURE TO COPY STRUCTURE TO FIELDS FIELDS 功能:仅复制当前表的结构,不复制其中的数据。若功能:仅复制当前表的结构,不复制其中的数据。若功能:仅复制当前表的结构,不复制其中的数据。若功能:仅复制当前表的结构,不复制其中的数据。若
35、使用使用使用使用FIELDSFIELDS选项,则新表的结构中只包含其指明的选项,则新表的结构中只包含其指明的选项,则新表的结构中只包含其指明的选项,则新表的结构中只包含其指明的字段,同时也决定了这些字段在新表中的排列次序。字段,同时也决定了这些字段在新表中的排列次序。字段,同时也决定了这些字段在新表中的排列次序。字段,同时也决定了这些字段在新表中的排列次序。例如例如例如例如:USE USE stu_grastu_graCOPY STRUCTURE TO stu_gra2 FIELDS COPY STRUCTURE TO stu_gra2 FIELDS 学号学号学号学号,姓名姓名姓名姓名,VFP
36、,VFP,高等数学高等数学高等数学高等数学,英语英语英语英语4其他文件操作命令其他文件操作命令 VFP除能复制各类文件外,还提供文除能复制各类文件外,还提供文件改名、删除和显示等功能,有关命令如件改名、删除和显示等功能,有关命令如表表3-6所示。所示。命令格式命令格式功能功能RENAME TO 文件改名称文件改名称ERASE|DELETE FILE 删除文件删除文件DIR TO PRINT显示文件目录显示文件目录TYPE TO PRINT显示文本文件的内容显示文本文件的内容表表3-6 文件改名、删除和显示命令文件改名、删除和显示命令 3.3表数据的替换表数据的替换3.3.1成批修改数据成批修改
37、数据在浏览窗口中修改数据必须由用户键入修改值,在浏览窗口中修改数据必须由用户键入修改值,在浏览窗口中修改数据必须由用户键入修改值,在浏览窗口中修改数据必须由用户键入修改值,而而而而REPLACEREPLACE命令能直接将字段值用指定表达式的值命令能直接将字段值用指定表达式的值命令能直接将字段值用指定表达式的值命令能直接将字段值用指定表达式的值来替换。因此在程序设计中常使用该命令。来替换。因此在程序设计中常使用该命令。来替换。因此在程序设计中常使用该命令。来替换。因此在程序设计中常使用该命令。命令格式:命令格式:命令格式:命令格式:REPLACEREPLACEWITHWITHADDITIVE1A
38、DDITIVE ,WITHWITHADDITIVEADDITIVEFORFORWHILEWHILE功能:在当前表的指定记录中,将有关字段值用相应功能:在当前表的指定记录中,将有关字段值用相应功能:在当前表的指定记录中,将有关字段值用相应功能:在当前表的指定记录中,将有关字段值用相应的表达式来替换。若的表达式来替换。若的表达式来替换。若的表达式来替换。若 与与与与 等选项都缺省,等选项都缺省,等选项都缺省,等选项都缺省,只对当前记录的有关字段进行替换。只对当前记录的有关字段进行替换。只对当前记录的有关字段进行替换。只对当前记录的有关字段进行替换。3.3.2记录与数组间的数据传送记录与数组间的数据
39、传送在在在在VFPVFP中,数组元素值或内存变量值能传送到中,数组元素值或内存变量值能传送到中,数组元素值或内存变量值能传送到中,数组元素值或内存变量值能传送到表内以替代记录中的数据,反之也能将记录中的数据表内以替代记录中的数据,反之也能将记录中的数据表内以替代记录中的数据,反之也能将记录中的数据表内以替代记录中的数据,反之也能将记录中的数据送入数组或内存变量中。送入数组或内存变量中。送入数组或内存变量中。送入数组或内存变量中。1记录传送到数组或内存变量记录传送到数组或内存变量命令格式:命令格式:命令格式:命令格式:SCATTERFIELDSSCATTERFIELDS|FIELDS LIKE|
40、FIELDS LIKE|FIELDS EXCEPT|FIELDS EXCEPT MEMOTO MEMOTOBLANK|MEMVARBLANKBLANK|MEMVARBLANK。功能:将当前记录的字段值按功能:将当前记录的字段值按功能:将当前记录的字段值按功能:将当前记录的字段值按 顺序依次送顺序依次送顺序依次送顺序依次送入数组元素中,或依次送入一组内存变量。入数组元素中,或依次送入一组内存变量。入数组元素中,或依次送入一组内存变量。入数组元素中,或依次送入一组内存变量。2数组或内存变量的数据传送到记录数组或内存变量的数据传送到记录命令格式:命令格式:GATHER FROM|MEMVARFIEL
41、DS|FIELDS LIKE|FIELDS EXCEPTMEMO功能:将数组或内存变量的数据依次传送到功能:将数组或内存变量的数据依次传送到当前记录,以替换相应字段值。当前记录,以替换相应字段值。3成批记录与数组间的数据传送成批记录与数组间的数据传送SCATTERSCATTER与与与与GATHERGATHER命令只能在表的单个命令只能在表的单个命令只能在表的单个命令只能在表的单个记录与数组间进行数据传送。下面介绍表的成批记记录与数组间进行数据传送。下面介绍表的成批记记录与数组间进行数据传送。下面介绍表的成批记记录与数组间进行数据传送。下面介绍表的成批记录与数组传送数据的两条命令。录与数组传送数
42、据的两条命令。录与数组传送数据的两条命令。录与数组传送数据的两条命令。(1)将表的一批记录复制到数组)将表的一批记录复制到数组命令格式:命令格式:命令格式:命令格式:COPY TO ARRAY COPY TO ARRAY FIELDS FIELDSFORFORWHILEWHILE功能:将当前表选定的数据复制到功能:将当前表选定的数据复制到功能:将当前表选定的数据复制到功能:将当前表选定的数据复制到 表示的表示的表示的表示的数组之中,但不复制备注型字段。数组之中,但不复制备注型字段。数组之中,但不复制备注型字段。数组之中,但不复制备注型字段。例如:例如:例如:例如:USE USE stu_gra
43、stu_gra DIMENSION DIMENSION jzjz(2,32,3)&建立建立建立建立2 2行行行行3 3列列列列的二维数组的二维数组的二维数组的二维数组jzjz COPY TO COPY TO cl cl FIELDS FIELDS 学号学号学号学号,姓名姓名姓名姓名,VFP,VFP,高等数学高等数学高等数学高等数学,英语英语英语英语&c1.dbf&c1.dbf有有有有5 5个字段个字段个字段个字段 COPY TO ARRAY COPY TO ARRAY jzjz FOR VFP=60 FIELD FOR VFP=60 FIELD学号学号学号学号,姓名姓名姓名姓名,VFP,VFP
44、;*满足条件的记录有满足条件的记录有满足条件的记录有满足条件的记录有5 5个,但仅可复制个,但仅可复制个,但仅可复制个,但仅可复制2 2个记录到数个记录到数个记录到数个记录到数组组组组?jzjz (1,11,1),jzjz(1,21,2),jzjz(1,31,3),jzjz(2,12,1),jzjz(2,22,2),jzjz(2,32,3);*显示:显示:显示:显示:20030101,20030101,何兰何兰何兰何兰,90,85,82,20030102,90,85,82,20030102,铁玲铁玲铁玲铁玲,86,76,74,86,76,74(2)数组向数据表追加记录)数组向数据表追加记录命令
45、格式:命令格式:命令格式:命令格式:APPEND FROM ARRAYAPPEND FROM ARRAYFOR FOR FIELDSFIELDS功能:将满足条件的数组行数据按记录依次追加功能:将满足条件的数组行数据按记录依次追加功能:将满足条件的数组行数据按记录依次追加功能:将满足条件的数组行数据按记录依次追加到当前表中,但忽略备注型字段。到当前表中,但忽略备注型字段。到当前表中,但忽略备注型字段。到当前表中,但忽略备注型字段。接上例:接上例:接上例:接上例:USE USE cl clAPPEND FROM ARRAY APPEND FROM ARRAY jzjz&从数组从数组从数组从数组jz
46、jz追加记录到追加记录到追加记录到追加记录到c1.dbfc1.dbfLIST LIST *jzjz仅仅仅仅2 2行,故行,故行,故行,故c1c1追加追加追加追加2 2个记录;个记录;个记录;个记录;jzjz仅仅仅仅3 3列,而列,而列,而列,而c1c1有有有有4 4个字段,故第个字段,故第个字段,故第个字段,故第4 4个字段留空个字段留空个字段留空个字段留空3.4表的设置表的设置在表中选择数据是常见的操作,在表中选择数据是常见的操作,BROWSE、LIST等命令都可包含等命令都可包含FOR和和FIELDS子句,用来选择记录和字段。但是,子句,用来选择记录和字段。但是,使用命令子句来实现数据选择
47、仅在执行该命令使用命令子句来实现数据选择仅在执行该命令时生效一次。使用过滤器和字段表等逻辑表的时生效一次。使用过滤器和字段表等逻辑表的好处是,一旦将表设置逻辑表后,则对该表执好处是,一旦将表设置逻辑表后,则对该表执行任何操作时一直有效,直至撤消逻辑表为止。行任何操作时一直有效,直至撤消逻辑表为止。3.4.1记录过滤记录过滤有时有时有时有时VFPVFP中的若干命令都要求满足某种条件,中的若干命令都要求满足某种条件,中的若干命令都要求满足某种条件,中的若干命令都要求满足某种条件,若每一条命令都输入相同的条件,显然浪费了人力若每一条命令都输入相同的条件,显然浪费了人力若每一条命令都输入相同的条件,显
48、然浪费了人力若每一条命令都输入相同的条件,显然浪费了人力和时间。这时可以使用过滤器将不满足条件的记录和时间。这时可以使用过滤器将不满足条件的记录和时间。这时可以使用过滤器将不满足条件的记录和时间。这时可以使用过滤器将不满足条件的记录“隐蔽隐蔽隐蔽隐蔽”起来,即让这些记录在逻辑上消失,当操起来,即让这些记录在逻辑上消失,当操起来,即让这些记录在逻辑上消失,当操起来,即让这些记录在逻辑上消失,当操作完以后,再去掉过滤器来恢复这些记录。作完以后,再去掉过滤器来恢复这些记录。作完以后,再去掉过滤器来恢复这些记录。作完以后,再去掉过滤器来恢复这些记录。命令格式:命令格式:命令格式:命令格式:SET FI
49、LTER TO SET FILTER TO 功能:从当前表过滤出符合功能:从当前表过滤出符合功能:从当前表过滤出符合功能:从当前表过滤出符合 的记录,不符合的记录,不符合的记录,不符合的记录,不符合 的记录将被的记录将被的记录将被的记录将被“遮蔽遮蔽遮蔽遮蔽”,随后的操作仅限于满足,随后的操作仅限于满足,随后的操作仅限于满足,随后的操作仅限于满足过滤条件的记录。过滤条件的记录。过滤条件的记录。过滤条件的记录。例例3-5为为stu_gra.dbf设置过滤器,使其后设置过滤器,使其后的操作只对的操作只对VFP成绩及格的记录起作用。成绩及格的记录起作用。USE stu_graSET FILTER T
50、O VFP=60LIST&只显示只显示VFP=60的记录的记录SET FILTER TO&取消过滤器取消过滤器LIST&显示全部记录显示全部记录3.4.2字段过滤字段过滤字段表用于限定命令操作能作用的字段。字段表用于限定命令操作能作用的字段。命令格式:命令格式:SET FIELDS TO,|ALLLIKE|EXCEPT SET FIELDS ON|OFF例例例例3-63-6对对对对stu_gra.dbfstu_gra.dbf命令设置字段表,使用有效字命令设置字段表,使用有效字命令设置字段表,使用有效字命令设置字段表,使用有效字段作为编号、名称和部门。段作为编号、名称和部门。段作为编号、名称和部