




已阅读5页,还剩79页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第3章VisualFoxpro数据库及其操作,.,学习要点:,4.1表的建立4.2数据表的打开、显示和关闭4.3表的修改与编辑4.4数据表的过滤4.5数据表的复制,.,重点与难点:,数据表的打开、显示和关闭表的修改与编辑数据表的过滤数据表的复制,.,第四章表的建立和操作VFP支持2种使用方式:交互方式程序方式VFP将表分为2种:数据库表自由表,.,4.1表的建立,4.1.1表结构的分析和设计VFP采用类似于二维的表格的关系型数据模型,表由结构和数据两部分组成。如:,记录,字段,.,表名每张数据表都有一个表名称,数据表就以表名称为主文件名,以.DBF为扩展名将数据存储在外部存储介质上。表头(表结构)表头由若干标题栏目构成,每栏对应着表的一列,反映学生某一方面的情况。一列称为一个字段(字段也称为属性),确定表中的字段,主要是为每个字段指定名称、数据类型和数据宽度,这些信息也决定了数据在表中是如何被标识和保存的。表的内容内容由若干行组成,每行反映了某一学生的各方面情况,称为表的一个记录。,.,1字段名字段名用来标识字段,它是一个以字母、汉字或下划线开头,长度不超过10个的有效字符组成(数据库表字段名长度可达128个字节)。2字段类型与宽度字段类型应与将要存储在其中的信息类型相匹配;字段宽度必须能够容纳将要显示的信息内容;若字段的类型是数值型或浮点型,还应给出小数位数。,.,字段类型与宽度,.,说明:,对字符型、数值型和浮点型字段,在设计表结构时用户应根据实际需要设置适当的宽度,其他数据类型的宽度由VisualFoxPro规定,长度固定不变,如日期型宽度为8,逻辑型宽度为1等。备注型字段的宽度为4个字节,用于存储一个指针(即地址),该指针指向备注内容存放地的地址。通用型字段的宽度为4个字节,用于存储一个指针,该指针指向.FPT文件中存储通用型字段内容的地址。只有数值型、浮点型及双精度型字段才有小数位数,小数点和正负号在字段宽度中各占1位。可以指定字段是否接受空值(NULL)。,.,4.1.2建立表的结构,1、用户文件建立路径缺省值的设置步骤:1)选定工具菜单的“选项”命令2)在弹出的选项对话框中选“文件位置”选项卡3)在列表中选定“默认目录”选项4)选定“修改”按钮5)在更改文件位置对话框中选定”使用默认目录”复选框6)在默认目录文本框内输入路径7)选定确定”按钮返回选项对话框8)选定“确定按钮关闭选项,.,等价命令:,SETDEFAULTTO盘符路径,例如:SETDEFAULTTOC:VFP设置系统存盘缺省目录为C盘根目录下的VFP子文件夹。,.,2、建表方法(3种),方法一:命令方式,格式:,CREAT|?,功能:打开表设计器,创建一个新表文件结构。,命令1:,例:CREAT学生.dbf,.,格式:,CREATTABLE(),(),功能:直接创建一个新表文件结构。,命令2:,例:CREATTABLE学生(学号C(8),姓名c(8),性别C(2),入校总分N(3),.,a、选定“文件”菜单|“新建”;b、在新建对话框中的选定“表”选项按钮;c、选定“新建文件”按钮;d、在出现的创建对话框中输入表名、保存位置、保存类型;e、单击“保存”按钮;f、在出现的表设计器中设定各字段的属性值;g、设定完成后单击确定按钮h、出现询问现在是否要输入数据记录的对话框,按”否”按钮即关闭表设计器窗口,建立结构结束。,方法二:菜单方式,.,a、打开项目管理器;b、在“数据”选项卡中的选定“自由表”选项;c、单击“新建”按钮;d、在出现表设计器中设定各字段的属性值。,方法三:项目方式,.,表设计器的字段选项卡表设计器包括宇段、索引、表等3个选项卡字段选项卡的操作:(1)“字段名”:供输入字段名。(2)“类型”:供选取字段类型。(3)“宽度”:输人数字。(4)“小数位数”:输入或微调小数值数。(5)“索引”列:建立索引(6)“NULL”列:NULL值表示无明确的值P34(7)移动按钮:改变字段的次序。(8)删除按钮:删除一个字段。(9)插入按钮:插入一个字段可选定插入点后一字段后再选插入按钮。,.,4.1.3表数据的输入,方法一:立即追加数据在数据表的结构建立后立刻追加数据.,.,注意:数据输入要点(1)表的数据可通过记录编辑窗口按记录逐个字段输入。(2)逻辑型字段只能接受T,YFN这4字母之一(不论大小写)。T与Y同义,F与N同义。(3)日期型数据必须与日期格式相符。默认格式为美国日期:mmdd/yy,.,(4)备注型或通用型字段:不想输入数据:按回车键跳过;要输入数据:按ctr1十PgDn或用鼠标双击。记录的备注型或通用型字段非空时其字段标志首字母以大写显示。如:Gen,备注字段的文本可利用编辑菜单进行编辑,还可利用格式菜单设置格式,.,方法二:直接追加数据,格式:,APPENDBLANK,功能:在表尾追加一条空记录或以交互方式填写记录。,命令1:,例:APPENDAPPENDBLANK,.,格式:,APPENDFROMFIELDSWHILEFOR,功能:从另一个文件在当前表尾追加一批记录。,命令2:,例:P46li4-3,.,4.2数据表的打开、显示和关闭,只有表打计开才能靠编辑窗口对它修改或检索;但编辑窗口的关闭并不意味着表会关闭;表关闭时数据会自动存盘。,.,一、表的打开,1用USE命令来打开或关闭表格式:功能:在当前工作区中打开或关闭表。自动打开同名.FPT文件。,USE文件名,.,说明:(1)文件名表示被打开的表的名字;缺省文件名表示关闭当前工作区例命令USE5B&打开表5BDBF命令USE&关闭该表(2)打开一个表时,该工作区中原来打开的表自动关闭。(3)已打开的表总有一个记录指针,指针所指的记录称为当前记录。表刚打开时记录指针指向第一个记录。表操作结束后应及时关闭以便将内存的数据保存到表中。,.,2打开表的其它常用方法(1)通过菜单打开步骤为:a、选定“文件”菜单的“打开”命令b、在对话框中选定要打开的文件c、选定“确定”按钮。注:若要修改结构或记录还应选定打开对话柜中的“独占”复选框。否则打开的表是只读的不能修改。(2)通过窗口菜单的数据工作期命令来打开。,.,4.2.2关闭表的方法,(1)命令方式【命令1】USE【功能】关闭当前工作区已打开的表文件。【命令2】CLOSEALL【功能】关闭所有工作区中的所有各类型文件,但不释放内存变量。【命令3】CLOSE【功能】关闭由指定的相应类型的文件。CLOSETABLESALL可以关闭所有的表文件。,.,【命令4】CLEARALL【功能】关闭所有工作区中的所有表及各类型文件,并且释放内存变量。【命令5】QUIT【功能】关闭所有工作区中的表及各类型文件,释放内存变量并返回到操作系统。,.,(2)通过窗口菜单的数据工作期命令来关闭表。(3)通过退出VFP来关闭。方法1:选定“文件”菜单的“退出”命令方法2:在命令窗口中键人命令QUIT。,.,4.3表结构的修改,1、菜单方式打开表文件单击“显示”-“表设计器”,打开表设计器后即可进行修改。,.,2、命令方式,【格式】,【功能】打开表设计器对话框,修改当前表文件的结构。,MODIFYSTRUCTURE,【说明】在使用MODIFYSTRUCTURE命令之前必须先打开表。当表处于打开状态时,“显示”菜单中会包含表设计器命令。“字段”选项卡为用户提供了对表中字段的添加、删除以及设置字段的有效性规则等功能,.,添加新字段。将光标指向要添加新字段的位置并单击,再单击插入按钮,则在当前字段之前插入一个名为“新字段”的字段。删除字段。选定要删除的字段,单击删除按钮即可。修改字段属性。即可以修改字段的名称、宽度及类型。修改完毕后,单击确定按钮(或按CtrlW)进行保存。修改完成后,可在命令窗口中键入LISTSTRUCTRUE命令显示表结构。,.,4.4表的记录定位和显示,4.4.1记录指针的定位VisualFoxPro为当前表文件设置了一个记录指针,指针所指向的记录称为当前记录。一张表刚打开时,记录指针自动指向第1条记录。移动记录指针的命令分为两类:绝对定位相对定位。,.,(1)绝对定位,【格式】,【功能】将记录指针移动到指定位置。,GOTORECORD|TOP|BOTTOM,【菜单】打开表单击“显示”菜单选择“浏览”命令单击“表”菜单在级联菜单中执行“转到记录”命令进行记录定位。,.,【说明】,此命令应用时比较灵活,说明如下:RECORD物理记录号指定一个物理记录号,记录指针将移至该记录。可以省略GO或GOTO命令而只指定记录号。TOP|BOTTOM表示将记录指针指向表的第一个或最后一个记录。如果表索引文件打开时,则参数TOP|BOTTOM表示将指针移动到索引记录的开始或最后。如果该命令使用,则系统自动对该表达式取整,然后再将记录指针指向整数所表示的记录.,.,【例】记录指针绝对移动命令应用示例。,USE学生?RECNO()&测试当前记录的记录号,显示1GO4&将记录指针指向第4条记录?RECNO()&测试当前记录的记录号,显示4GOBOTTOM?RECNO()&显示最后一条记录的记录号GOTOP?RECNO()&显示首记录的记录号USE,.,(2)相对定位,【格式】,【功能】从当前记录开始向前或向后移动记录指针。,SKIP记录数,【说明】命令中的记录数表示移位记录的个数。负值表示向文件头移位;正值表示向文件尾移位;记录数省略时等同于1。,.,【例】SKIP命令用法示例。,USE学生?RECNO(),BOF()&显示1,.F.SKIP-1?RECNO(),BOF()&显示1,.T.(注意,记录号仍为1)SKIP8?RECNO(),BOF()&显示9,.F.SKIP?RECNO(),EOF()&显示10,.F.SKIP?RECNO(),EOF()&显示11,.T.USE,.,4.4.2数据的显示与修改,1、用菜单方式浏览和修改数据方法:利用“显示”菜单下的“浏览”和“编辑”命令打开浏览窗口即可。,.,2、用BROWSE命令浏览数据,【格式】,【功能】打开浏览窗口,显示和修改记录。,BROWSEFIELDSFORlast,【说明】若有REST参数,则打开浏览窗口是指针定位在当前记录上,否则定位在第一条记录上。,.,【例4-8】BROWSE命令示例。,USE学生BROWSEFIELDS学号姓名,出生年月,入校总分FREEZE学号冻结学号字段进行浏览,即学号字段是可以进行操作的惟一字段BROWSETITLE学生基本情况表NODELETELOCK1NOMENUFIELDS学号:R,姓名:R:H=学生名字,三好生命令执行的结构是:浏览窗口标题改为“学生基本情况表”;学号、姓名两字段为只读,且姓名字段名显示为“学生名字”;在该窗口中不许设置记录删除标记;将窗口一分为二,右分区按常规显示,左分区只出现前一个字段,如图所示。,.,BROWSE命令的使用,.,3、插入记录,【格式】,【功能】在当前打开表文件中的当前记录指针位置处插入新记录。,INSERTBLANKBEFORE,【说明】使用BEFORE子句能在当前记录之前插入新记录,缺省该子句则在当前记录之后插入新记录。若使用BLANK子句立即插入一条空白记录,缺省该子句则出现记录编辑窗口,等待用户输入记录。,.,【例4-11】在“学生”数据表的第4条记录之前插入一条空白记录。,USE学生LISTGO4INSERTBEFOREBLANKNote在4号记录之前插入空白记录BROWSE,.,插入一条空白记录后的浏览窗口,.,4、用命令LIST或DISPLAY记录,【格式】,【功能】对满足条件的当前表记录列表或分屏的方式进行显示输出。,LIST/DISPLAYFIELDSFORWHILEOFFTOPRINTERPROMPT|TOFILE文件名,.,【说明】FIELDS指定显示的字段名。指定输出记录的范围,默认为ALL。对DISPLAY命令,如果不指定范围,则显示当前记录。FOR/WHILE指定输出显示记录所满足的条件,如果同时指定FOR和WHILE,WHILE优先进行,WHILE指在显示输出时从记录指针所指向的当前记录开始,而FOR总是从第一条记录开始。OFF在显示输出时不显示记录号。,.,【例4-5】显示学生表的记录,如图。,USE学生LIST&在屏幕显示当前表所有记录DISPLAYALLFIELDS学号,姓名,入校成绩OFF,.,.,4.5数据表的复制,4.5.1复制任何类型的文件,【格式】,【功能】将源文件的内容复制到目标文件中。,COPYFILETO,【说明】源文件和目标文件的扩展名不能省略。,.,示例:,COPYFILEC:SB.DBFTOSB1.DBFCOPYFILEC:SB.FPTTOSB1.FPT,.,4.5.2复制表文件,【格式】,【功能】将选定记录的字段复制成一个新表或其他类型的文件,COPYTOFIELDSFORWHILE,【说明】源文件和目标文件的扩展名不能省略。,.,【例】利用学生表分别创建一个包含“学号”,“姓名”和“性别”的新表,表名为学生1.DBF,新表包含有女生的所有记录和一个名为“学生.TXT”的文本文件。,USE学生COPYTO学生1FIELDS学号,姓名,性别FOR性别=女COPYTO学生SDF&生成一个名为学生的文本文件,扩展名是.TXTTYPE学生.TXT&在屏幕上显示文本内容,.,4.5.3复制数据表结构,【格式】,【功能】用当前选择的表结构创建一个新的数据表结构。,COPYSTRUCTURETO新表文件名FIELDS,【例】利用学生表创建一个包含有学号、姓名和性别的新表,表名为学生1.DBF:USE学生COPYSTRUCTURETO学生1FIELDS学号,姓名,性别,.,4.6记录的删除与恢复,4.6.1逻辑删除记录(为记录做删除标记)在VisualFoxPro中,通过窗口菜单或命令都可以删除表中的记录。删除记录应首先对相关记录做删除标记有两种删除标记:在主屏的列表显示下,物理记录号与第一个字段之间有一“*”标记,在“浏览”方式下,记录左面为黑色方块“,.,(1)在“浏览”窗口中做删除标记,“浏览”方式下,单击记录左面的方块即可为记录加上删除标记。再次单击可取消黑色小方块即取消删除。如果该记录须真正删除,这时须从“表”菜单中选择“彻底删除”,当出现提问是否删除已做标记的记录时,选择“是”,便会永久删除。如果做了删除标记的记录,以后再进行彻底删除,用户这时可按Ctrl+W键存盘退出。如果想对记录设置删除范围,则应在“删除”对话框中设置条件。,.,【例4-12】在“学生”数据表中,对所有女生的记录做删除标记,操作步骤如下:从“表”菜单中选择“删除记录”,然后输入删除条件。在“删除”对话框的“作用范围”中选择删除的范围(如选ALL为全部,NEXT2为从当前记录开始的连续2条,RECORD3为第3条,REST为从当前开始直至最后一条记录),这里选择ALL。如果待删除的记录能够描述出来,用户可以建立一个描述表达式,如本例FOR的表达式是:性别=女。最后单击删除按钮即可。,.,做删除标记对话框窗口,.,(2)用命令为记录做删除标记,【格式】,【功能】对当前表在指定内满足的记录加上删除标记。,DELETEFORWHILE,【说明】若可选项都缺省,只为当前记录做删除标记。,.,【例】删除命令DELETE的应用示例。,USE学生DELETEFOR入校总分=565LIST*使用函数DELETE()可以判断记录是否被逻辑删除GO4?DELETE().F.GO7?DELETE(),.,4.6.2逻辑删除记录的恢复,【格式】,【功能】对当前表在指定内满足的记录去掉删除标记。若可选项都缺省,只恢复当前记录。,RECALLFORWHILE,【菜单】打开数据表的浏览窗口然后单击“表”菜单选择“恢复删除”命令。,.,4.6.3物理删除记录,(1)对带有删除标记的记录可通过命令把它们从磁盘上永久地删除,命令语法格式如下:,【格式】,【功能】从物理上删除,也即真正删除带有删除标记的记录。,PACK,【说明】使用该命令将真正删除带有删除标记的记录,不可恢复。,.,(2)记录的一次性删除命令使用ZAP命令可以一次性将当前表中所有记录从表文件中彻底删除,仅保留表的结构。命令语法格式如下:,【格式】,【功能】物理删除当前表中的所有记录。,ZAP,【说明】执行ZAP相当于执行DELETEALL和PACK两条命令,只保留表结构。,.,4.7修改表中的数据,4.7.1用命令修改表中的数据1、CHANGE/EDIT命令,【格式】,【功能】弹出对话窗口对指定条件记录的指定字段进行修改。,CHANGE/EDITFIELDSWHILEFOR,.,2、成批修改记录数据,【格式】,【功能】在当前表的指定记录中,直接将字段值用指定的表达式值来替换。,REPLACEFORWHILEWITHADDITIVE,WITHADDITIVE,【说明】在当前表的指定记录中,直接将字段值用指定的表达式值来替换。,.,【说明】,该命令对内符合的记录用的值来替换的值。若与等选项都缺省,只对当前记录的有关字段进行替换。ADDITIVE用于备注型字段,表示将表达式值添加到字段的原有内容后面,否则取代原有内容。,.,【例4-9】对表1-8所示的课程表“课程.DBF”中的某些记录进行修改。,USE课程REPLACEALLFORLEN(TRIM(课程名)=4课时WITH课时-5,课程名WITHSUBSTR(课程名,1,2)+SUBSTR(课程名,3,2)*上面命令的作用是将3号记录的课程名字段值变为“日语”,课时数变为“75”,.,【例4-10】将表达式值添加到学生.dbf表中3号记录的备注型字段中。,USE学生REPLACE特长WITH,+姓名+曾获市中学个人舞蹈比赛第一名FORRECNO()=3ADDITIVE该记录备注字段数据变为“舞蹈,刘雨曾获市中学个人舞蹈比赛第一名”,.,3、在浏览窗口中编辑修改记录,格式:BROWSEFIELDSFOR&记录选择FREEZE&冻结指定字段FONT,STYLE&字体、风格、格式设置LOCK&;左分区锁定NAME&允许使用表格控件的对象LAST&以最后一次的配置浏览NOAPPEND&不许追加记录NODELETE&不许设置删除标记,.,NOEDIT|NOMODIFY&不允许编辑数据,但可浏览,添加或删除记录NOLGRIDNOWAIT&不要分区网格线NOLINK&左右分区不连接NOMENUNOWAIT&不访问表菜单,不等待NOREFRESH&禁止窗口刷新NOMORE&打开正常浏览窗口SAVE&保持浏览窗口为活动窗口TIMEOUT&显示浏览窗口时间TITLE&设置浏览窗口标题VALID:FERROR&记录级检查WHENWIDTH&当条件检查,.,WINDOW&窗口名称INWINDOW|INSCREEN&浏览窗口在窗口或屏幕中,.,4.7.2数据表与数组之间的数据交换,1将当前记录复制到数组,【格式】,【功能】将当前记录的字段值按顺序依次送入数组元素中,或依次送入一组内存变量。,SCATTERFIELDSMEMOTOBLANK|MEMVARBLANK,.,【说明】,若选择FIELDS子句,则只传送字段名表中的字段值,否则将传送所有字段值(备注型字段除外)。若要传送备注型字段值,还需使用MEMO选项。使用TO子句能将数据复制到所示的数组元素中,如果已定义的数组长度不够,VisualFoxPro会自动扩大数组长度。使用MEMVAR可将数据复制到一组变量名与字段名相同的内存变量中;如果使用BLANK,则创建一组与各字段名同名、数据类型相同的空内存变量。,.,【例4-15】SCATTER命令的使用示例。,USE学生GO*下面将第一条记录中各字段值包括备注字段的内容,复制到数组ST1中SCATTERTOST1MEMOSKIP*将第二条记录中姓名、性别和入校总分3个字段的内容复制到数组ST2中SCATTERFIELDS姓名,性别,入校总分TOST2MEMOGOBOTTOM*将最后一条记录各字段值复制到同名内存变量中SCATTERTOMEMVAR,.,2将数组或内存变量的数据复制到当前记录,【格式】,【功能】将数组或内存变量的数据依次复制到当前记录,以替换相应字段值。,GATHERFROM|MEMVARFIELDSMEMO,.,【说明】,修改记录前需确定记录指针
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子企业的保洁合同范本
- 窗子外包安装合同协议书
- 注塑厂生意转让合同范本
- 租用农地建厂房合同范本
- 终止劳动合同保密协议书
- 私人对私人加工协议合同
- 法院办理协议离婚协议书
- 申请企业并购协议书范本
- 物业维修承包合同协议书
- 高质量门窗采购合同范本
- 项目管理体系运行
- 物业工程前期介入方案
- 2024年杭州萧山环境投资建设集团有限公司招聘笔试真题
- T-FSS 16-2024 电水壶标准规范
- SAP销售订单处理用户操作手册
- DBJT 13-309-2019非开挖顶管技术规程
- 我国个人破产制度构建初探
- 吉林省“BEST合作体”2024-2025学年高二上学期期末考试数学试卷 含答案
- 转岗建工作简历模板
- 物业小区保安服务合同
- 消防控制室搬迁施工组织设计方案
评论
0/150
提交评论