还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
补充VF中的命令格式说明
1、VF中命令可以只写前四个字母或四个字母以上例如命令replace,可以写成repl replareplac字母不区分大小写
2、如果命令带有参数,则命令和参数间、参数与参数间要加空格
3、命令格式说明<>表示必选项目口表示可选项|表示二选一例如P58copy struto命令
4、注意所有的字符都要使用半角字符
5、命令和参数、参数和参数之间需要用空格隔开例如:P48【例4-5】
6、一般来讲,参数和参数之间的顺序可以相互交换例如P48【例4-5】
7、命令执行时必须回车8命令换行每条命令最多不能超过8192个字符包括括号若屏幕一行不能显示,可用分号、”换行换行时仍然需要回车注意命令工作方式中常见的错误1命令动词写错2格式不符合要求・标点符号不对一定要用英文状态的标点•缺少必需的空格或添加了不该有的空格・数据类型不一致,要注意字符型、日期型、逻辑型数据的书写格式3打不开所需要的文件没有正确输入盘符和路径或文件名输入错误重要提示:VFP中的符号应该都是半角符号即英文标点符号!!这个是对的这个是错的/标尚2卜密朝第四章表的建立和操作建立数据表文件
4.1
一、表结构的建立
1.命令方式命令格式1CREAT TABLE〈新表文件名><字段名1><类型>长度[,<字段名2>〈类型〉〈长度〉.…・・]例如GREAT TABLE选课表学号C8,课程号C4,成绩N322create[<表名>|]例如create xsda
2.菜单方式文件菜单,新建->表->新件文件注意希望大家能有好的保存习惯设置默认目录方法
1.工具=>选项二〉文件位置=〉默认目录
2.set defaultto完整路径如set defato e:\vf
二、数据的输入list memo like ks思考KS的单元有儿个?备注型字段的值传到了数组ks中吗?通用型字段呢?6NO NO结论
1.scatter to数组变量名时;数组可以不先定义数组的下标大小由字段个数确定
2.如果定义了数组,如果字段个数超过了数组下标,则会下标会自动扩展下标说明dime arr44就是下标
3.通用型不能赋给数组,备注型可以,但是必须要加参数mem例如scatter toyuio memoyuio的单元就变成7个了
2.将数组或内存变量的数据传送到记录命令GATHER FROM〈数组名|MEMVAR[FIELDS〈字段名表》][MEMO]功能将数组或内存变量的数据依次传送到当前记录,以替换相应字段值说明
①修改记录前应确定记录指针位置
②若使用FIELDS子句,仅〈字段名表〉中的字段才会被数组元素替代.缺省MEMO子句时将忽略备注型字段.
③内存变量值将传送给与它同名的字段,若某字段无通明的内存变量,则不对该字段进行数据替换
④若数组元素多于字段数,则多余的数组元素不传送,而数组元素少于字段数,则多余的字段其值不会改变gatherfrom数组将数组的值传给给表例如:use xsdago3disp dime ks3scatter toks ks3尸张三”gather fromks disp例use学生dime hh3listgo3scatter tohhhh2hh2尸“李四”gather fromhh ListGO5SCATTER MEMVARDISPMEMO学号=A0201105”GATHER MEMVARDISP
2.多记录和数组之间的数据交换1将表的一批记录复制到数组命令COPY TO ARRAY〈数组名〉[FIELDS〈字段名表〉][〈范围》][FOR〈条件〉][WHILE〈条件〉]功能将当前表选定的数据复制到〈数组名〉表示的数组中,但不复制备注型字段.说明
①若命令中指定的数组不存在,VF会自动建立
②可以将单个记录的数据复制到一维数组中
③该命令能将当前表的多个记录复制到二维数组中注若数组事先定义,则该命令不会调整数组的大小例如use xsdacopy toarray ABCABC2,6=700append fromarray ABClist观察数组变量的下标ABC如果数组先定义就不同了use xsdadimehen3,4copy toarray henlistmemo likehen最后,数组的下标还是hen3,42从数组向表追加记录命令APPEND FROMARRAY〈数组名》[FOR〈条件〉][FIELDS〈字段名表>]功能将满足条件的数组行数据按记录依次追加到当前表中,但忽略备注型字段说明
①数组名可以是一维或二维数组数组的行数就是所追加新记录的个数,即一维数组追加一个记录,而二维数组的每一行追加一个新记录
②若数组列数多于字段数,多于列的数组元素将被忽略;反之,若字段数多于数组列书,则多出来的字段为空值例2use学生dime tt3,4listcopy toarray ttfor性别=男,alllist memolike tttt2尸萧萧”copy structureto xxusexxappe fromarray ttlist
1.立即输入
(1)、备注型数据的输入方法光标定位“memo”处,双击鼠标输入、编辑结束后,点击编辑窗口的“关闭”按钮,VFP会自动将修改后的数据保存)返回到数据输入的正常状态;按或Esc键则清除当前输入的信息,返回到数据输入的正常状态
(2)、通用型数据的输入(同上)打开窗口后,通过VFP的“编辑”菜单的“粘贴”或“插入对象”选项来完成注意
1.数据输入时不要有空格
2.关闭就存盘3•如字段名输错、字段宽度或类型设计错、多输或少输了字段名、字段位置调整可使用
(1)显示菜单-〉表设计器
(2)在命令窗口中输入命令Modify structure
(3)如果字段值需要修改,可输入命令browse或点击显示菜单的“浏览”和“编辑”选项也可以进行操作o
(4)如果要添加新的记录输入append或在“显示”菜单里选择“追加方式”选项
4.备注型宽度为4系统默认显示为mem或者Mem(有内容时)通用型宽度为4系统默认显示为gen或者是Gen(有内容时)4个字节存放的是地址指针,指向备注文件(文件名和表文件名一样,扩展名为.FPT)对应的内容重要提示只要表中有备注或者通用字段(不管是一个或者多个),或者两个同时都有,系统就会自动产生一个与表文件名相同的备注文件,扩展名为FTP o用于存放备注型和通用型字段的内容表的打开、显示和关闭
4.2
一、打开表
1.打开表
(1)命令方式【格式】USE〈表文件名〉|【功能】在当前工作区打开一个表文件注表文件名如没有加路径则默认打开c:\program files\microsoft visualstud表\vfp98下的表文件在打开表文件的同时同名的备注文件和复合索引文件也同时打开
(2)菜单方式单击“文件”菜单中的“打开”选项(打开时请将“独占”选项选中,否则表不能进行修改)注意
(1)、表建立时就会被打开
(2)、表是否被打开可查看状态栏是否显示有表名或看“显示”菜单在窗口上是不会有任何的显示想要查看记录可用命令或选择菜单项来完成
二、关闭表命令方式【格式1】USE功能关闭当前工作区中正打开的表文件及其索引文件【格式2]CLOSE ALL功能关闭所有工作区中的所有各类型文件,但不释放内存变量,并选择工作区1为当前工作区【格式3】CLOSE〈文件类型〉例如CLOSE DATABASESCLOSETABLE关闭打开的所有表文件、索引文件、备注文件、格式文件并选择工作区1为当前工作区【格式4]CLEAR ALL功能关闭所有工作区中的所有表及各类型文件,并释放内存变量
三、表记录的显示
1.显示文件记录的两个命令list和displayLIST[OFF][v范围习[FIELDS〈字段名表>][FOR/WHILE v条件>][TO PRINTER|TO FILE〈文件名>]【功能】显示当前表文件中指定的记录和字段的内容【说明】1范围用于确定执行该命令涉及的记录有如下几种all:全部记录next<n>:从当前记录开始的N条记录record<n>:第N条记录rest:当前记录起到最后一条记录为止的所有记录注意如没指定范围,则LIST命令默认范围为ALL即全部记录;DISPLAY默认范围为当前记录例如Use学生登记表DISPLISTGO2LIST NEXT3LIST RECORD4GO3LIST RESTLISTALL22FIELDS子句用于确定需要操作的字段例如Use学生登记表List fields学号,姓名,性别,入校总分Go topListnext3fields学号,姓名,出生年月3for〈条件><条件〉为逻辑表达式,用于指定选择记录的条件在LIST命令中没有指定范围时默认是所有的记录中筛选例如Use学生登记表List for入校总分>
570.00显示入校总分大于570的记录List forleft姓名,2尸“李”显示姓李的同学List forsubstr姓名J2尸“李and性别=男显示姓李的男生Go topListrest foryear出生年月>1980and性别=女or入校总分<580fields姓名,性别,出生年月,入校总分优先级for/while〈条件》的优先级最高然后是范围,最后才是list和display4while〈表达式〉用于条件筛选,但仅在当前记录符合条件时开始筛选,一旦遇到不满足条件的记录时就停止筛选例如Go topList while left姓名,2=魏Go2Listwhile性别=男”注意:FOR子句默认范围是全部记录筛选While子句则遇到不满足条件的记录就停止5[OFF]选项在命令中使用时不显示记录号6To printer:到打印机To file〈文件〉这里的文件类型是TXTList和display异同l.list默认显示是全部记录,display默认显示是当前记录
2.如有多条记录,LIST以滚动方式输出,DISPLAY以分屏方式输出
3、如命令中指定了条件或范围,则两条命令结果相同思考下列命令的显示结果Use学生登记表Disprecno,eof,bofListrecno,eof,bofdisp
2.浏览窗口显示记录了解BROWSE[[FILESD]<字段名表才FOR<条件〉[REST]]【功能】打开浏览窗口
四、记录指针的定位L记录指针的绝对移动1命令方式【格式】GO[TO][RECORD]v数值表达式>|top|bottom【功能】将当前表文件的记录指针定位到指定记录号的记录处【说明】A、〈数值表达式>选项代表所要定位记录的记录号,该记录号不能小于1也不能大于记录总数加loB、TOP选项代表将当前表文件的记录指针定位到第一个记录首记录C、BOTTOM选项将当前表文件的记录指针定位到最后一个记录尾记录注相关函数说明1RECNO:显示当前记录号2BOFbegin offile文件开始,第一条记录的前面,记录号为13EOF:end offile:文件结束,最后一条记录的后面,记录号为最后一条记录的记录号+1例如use学生登记表recno测试当前记录号,显示为1GO4将记录指针指向第4条记录Recno测试当前记录号,显示为1Go bottomRecno显示最后一条记录的记录号Go toprecno显示首记录的记录号
2.记录指针的相对移动【格式】SKIP[v数值表达式>]【功能】以当前表文件的当前记录位置为基准,记录指针向前或向后移动〈数值表达式>值到相应的记录位置【说明】1数值表达式>选项代表相对移动的记录数若v数值表达式,值为正数则向文件尾的2方向移动记录指针;若〈数值表达式>值为负数则向文件头的方向移动记录指针若缺省,相当于执行SKIP1,则指针向表尾移动一个记录⑶若执行此命令前执行了,号小十飞§▽案归寿由臭命令尽则,影A命令将不把具有删除标记的记录计算在内㊁了解例如use学生登记表recno.,bof,eof.显示为・..f.…f.Skip-
1.recno.,bof,.显示为・.t…f.eof.Skip显示为..・£・・.f.
3.recno.,bof,eof.显示为・・.f….f.Skip.recno.,bof,eof.显ZK为...f….t.Skip
2.recno.,bof,eof.表的修改与编辑
4.3
一、修改表结构1显示菜单-〉表设计器2在命令窗口中输入命令Modify structure
二、修改记录
1.全屏编辑CHANGE/EDIT[<范围〉][FIELDSv字段名表〉][FOR<条件>WHILE〈条件〉]功能对指定范围内,符合条件的那些记录的指定字段进行编辑修改说明
①若命令写声EDI1X记录号》,则是对记录号指定的记录进行修改
②可连续修改多个记录,修改完成后,按CTRL+W存盘并结束修改
2.自动替换重点1命令方式命令REPLACE[〈范围〉][FOR<条件>]/[WHILE〈条件》]〈字段名1〉WITH〈表达式1[ADDFHVE]L<字段名2>WITH〈表达式2>[ADDITIVE]]功能:在当前表的指定记录中,直接将字段值用指定的表达式值来替换说明
①该命令对〈范围》内符合〈条件>的记录用〈表达式1>的值来替换〈字段1》的值.
②若范围和条件等选项都缺省,只对当前记录的有关字段进行替换.
③ADDITIVE用于备注型字段,表示将表达式值添加到字段的原有内容后,而不是取代原有内容.例1:给表学生.dbf增加一个字段年龄并且自动替换先modi comm,插入年龄字段N3replace all年龄withyeardate-year出生年月例2:如果一张表有语文、数学、外语和总分四个字段,而前三个字段数据已经填写现在请自动填写总分字段,并且把男同学的总分增加10%repl all总分with语文+数学+外语repl all总分with总分*LI for性别=男,例3:将入校总分字段全部清空repl all入校总分with0例4:将第5条记录的姓名字段改为李四repl reco5姓名with“李四”或者go5repl姓名with“李四”
三、增加记录1,追加记录
(1)菜单方式方法“显示”菜单->“追力口方式”选项⑵命令方式APPEND[BLANK]功能在当前表的表尾追加新记录说明
①使用BLANK是在表尾追加一条空白记录
②如要要追加多条记录,则需选择“显示”菜单中的“追加方式”命令其他命令方式的和“追加新记录”只能追加一条记录
2.插入新记录INSERT[BLANK][BEFORE]功能在当前打开表文件中的当前记录指针位置处插入新记录说明⑴使用BEFORE子句能在当前记录之前插入新记录,缺省该子句则在当前记录之后插入新记录
(2)使用BLANK子句立即插入一条空白记录,缺省该子句则出现记录编辑窗口,等待用户输入记录例如insert:在当前记录后插入新记录insert before:在当前记录前插入新记录insert blank:在当前记录后插入空白记录insert blankbefore:在当前记录前插入空白记录
3.INSERT-SQL命令INSERT INTO表名[(字段名1[,字段名2,……])VALUES(表达式1[,表达式2,……])功能在表尾追加一条新记录,并将数据存入该记录中说明
①表不必事先打开,字段与表达式的类型必须相同
②若字段名全部缺省,就须按表结构字段顺序填写VALUES子句的所有表达式例如INSERT INTO学生登记表(学号,姓名,性别,入学成绩)VALUE(“00204,张三”,“男“,
582.00)4,数据表内容的批量增加APPEND FROM命令命令APPEND FROM〈文件名》[FIELDS〈字段名表>][FOR<条件>]UTYPE][DELIMITED[WITH<定界符>|WITH BALNK|WITH TAB]|XLS|SDF]]功能:在当前表尾追加一批记录,这些记录来自于另一个文件说明
①源文件的类型可以是表,也可以是系统数据格式、定界格式等文本文件,或EXCEL文件
②源文件默认类型是表,如是其他类型文件,需用TYPE子句
③执行此命令时源文件不需要打开例如APPEND FROMWENJIAN.TXT TYPE DELIMITED WITH”将文件名为WENJIAN,用“,”作为定界符的文本文件中的所有记录追加到当前表中
四、删除记录
1.记录逻辑删除命令命令DELETER范围>][FOR<条件>][WHILE〈条件〉]功能:对当前表在指定范围内满足条件的记录打上删除标记说明⑴若可选项都缺省,只删除当前记录
(2)DELETE命令只是将指定的记录打上标记,并不是彻底的从表中删除记录打上标记的记录可以恢复
2.记录物理删除命令命令PACK功能从物理上彻底删除打上了删除标记的记录说明删除的记录不可以恢复
3.记录恢复命令命令:RECALL[<范围>][FOR<条件>][WHILE〈条件〉]功能:对当前表在指定范围内满足条件的记录去掉删除标记若可选项都缺省则只恢复当前记录.记录清除命令4命令ZAP功能从物理上删除当前表中的所有记录注只是将表中的记录全部删除了,但是表结构仍然存在ZAP逻辑删除dele:恢复删除recall:在的基础上物理删除与上面三条命令无关,直接清除表中pack:dele zap:所有数据,保留表结构[范围]<条件习删除指定的记delete[for/while录(加删除标记)[范围]〈条件习恢复删除指定的记录recall[for/while(去掉删除标记)和没有参数!!!pack zap例如Use学生Go2Insert blankDelenext3ListRecall allList补充SET DELETEDON|OFF指定是否处理标有删除标记的记录,以及其他命令是否可以操作它们SET DELETEDOn:使用范围子句处理记录(包括在相关表中的记录)的命令忽略标有删除标记的记录SET DELETEDOFF:(默认值)使用范围子句处理记录(包括在相关表中的记录)的命令可以访问标有删除标记的记录例如use xsdasetdele onlistsetdele offlist表的过滤
4.4表的过滤(了解)⑴记录的过滤命令SET FILTERTO[〈条件〉]功能从当前表中过滤出符合指定条件的记录,随后的操作仅限于这些记录说明缺省条件时表示取消所设置的过滤器例如SET FILTERTO性别=“女”LISTSET FILTERTO取消过滤LISTQ)字段过滤命令SET FIELDSTO[<字段名表>|ALL]功能:为当前表设置字段过滤器说明:
①其中〈字段名表》是需要访问的字段名称列表,个字段之间用”隔开ALL选项表示所有字段都在字段名表中
②命令SET FIELDS0N|OFF决定字段名表是否有效当设置字段过滤器时,SET FIELDS自动置ON表示只能访问字段名表指定的字段SET FIELDSOFF表示取消字段过滤器,恢复原来状态例如SET FIELDSTO学号,姓名,性别LISTSET FIELDSONLISTSET FIELDSOFF取消字段过滤LIST数据的复制
4.5
一、表的复制
1.复制任何类型的文件命令COPY FILE〈文件名1〉TO〈文件名2〉功能把文件1做个副本得到文件2注⑴若对表文件进行复制,该表必须处于关闭状态
(2)文件名1和文件名2中可使用通配符和“?二但文件1和文件中的通配符位置必须相同2
(3)文件1如果不写明路径则在当前目录下找,复制后的文件2如果标明路径则也保存在当前目录下例如copy FILE学生.*TOA:\学生.*将当前目录里的所有以学生为主文件名的文件拷贝到A盘的根目录下copy filexsda.dbf toxixi.dbfcopy filexsda.fpt toxixi.fpt
2.复制表文件COPY TO〈文件名才〈范围>][FIELDS〈字段名表>][FOR<条件>]/[WHILE<条件〉][[TYPE][XLS|SDF|DELIMITED[WITH<定界符>|WITH BALNK|WITH TAB]]]功能将当前表中选定的部分记录和部分字段复制成一个新表或其他类型的文件注⑴若表中含有备注型字段,则在复制扩展名为.DBF文件的同时自动复制扩展名为.FPT的备注文件
(2)若不含TYPE子句,默认文件的类型是表;若要得到EXCEL文件,TYPE子句中必须取XLS;若要得到文本文件(.TXT),则TYPE子句中必须取SDF(无定界符)或DELIMEITED例如use学生学生性别=男学号,姓名,入学成绩copy tofor fieldsCOPYTO学生表NEXT5FIELDS学号,姓名,入校总分FOR性别=男”;AND!三好生TYPEDELIMITEDWITH”
3.复制表结构COPY STRUCTURETO〈文件名〉[FIELDSk字段名表>]功能把当前表的结构复制到〈文件名》指定的新文件中注⑴只复制当前表的结构,不复制其中的数据
(2)若使用FIELDS选项,则新表的结构只包含其指明的字段,同时也决定了这些字段在新表中的排列次序
(3)如有备注型和通用型字段则同时生成一个同名备注文件学生usecopy struto heng学号,性别,姓名,简历copy struto hifields
二、数组和表之间的数据交换
1.将表中记录传送到数组或内存变量命令SCATTER[FIELDS〈字段名表》][MEMO]TO〈数组名》[BLANK]|MEMVAR[BLANK]功能将当前记录的字段值按〈字段名表》顺序依次送如数组元素中,或依次送如一组内存变量说明
①若选择FIELDS子句,则只传送字段名表中的字段值,否则将传送所有字段值(备注型和通用型字段除外)若要传送备注型字段值,还需要使用MEMO项scatter用法一将当前记录的值赋给内存变量格式scatter[fields字段名表]MEMVER例如:use学生go3disp scatter fields学号,姓名,入学成绩memvarm.学号,ni.姓名,ni.入学成绩scatter用法二将当前记录的值赋给数组变量格式重点掌握scatter[fields字段名表]to数组变量名例如use xsdago3scatterfields学号,姓名,入学成绩,简历to kkmemo listmemolikekk例如use xsdago3dimeks
(3)scatter toks。
个人认证
优秀文档
获得点赞 0