VisualFoxPro数据库管理系统概述.ppt

上传人:鲁** 文档编号:569981380 上传时间:2024-08-01 格式:PPT 页数:102 大小:1.82MB
返回 下载 相关 举报
VisualFoxPro数据库管理系统概述.ppt_第1页
第1页 / 共102页
VisualFoxPro数据库管理系统概述.ppt_第2页
第2页 / 共102页
VisualFoxPro数据库管理系统概述.ppt_第3页
第3页 / 共102页
VisualFoxPro数据库管理系统概述.ppt_第4页
第4页 / 共102页
VisualFoxPro数据库管理系统概述.ppt_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《VisualFoxPro数据库管理系统概述.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro数据库管理系统概述.ppt(102页珍藏版)》请在金锄头文库上搜索。

1、 第二章第二章 Visual FoxPro 数据库管理系统概述数据库管理系统概述8/1/202412.1 Visual FoxPro的操作环境的操作环境2.2 Visual FoxPro文件类型文件类型2.3 Visual FoxPro的项目管理及其操作的项目管理及其操作2.4 Visual FoxPro语言基础语言基础8/1/20242VFP的特点的特点数据库方面数据库方面 区分了数据库与数据表的概念 Rushmore技术(速度快,多索引) SQL命令(高效检索)数据操作方面数据操作方面 简单、灵活、多样的数据交换手段 Visual FoxPro(简称简称VFP)是基于是基于 Windows

2、平台和服务器上的可视化平台和服务器上的可视化 数据库管理系统。数据库管理系统。8/1/20243程序设计方面程序设计方面(可视化应用程序)(可视化应用程序)可视化、少量程序代码可视化、少量程序代码可靠性高可靠性高调试简单调试简单项目编译项目编译面向对象面向对象8/1/20244操作使用方面操作使用方面完善的IDE(菜单、工具条或快捷键) 丰富的开发工具向导:表单向导向导:表单向导设计器:表设计器设计器:表设计器生成器:表达式生成器生成器:表达式生成器 管理器:项目管理器管理器:项目管理器8/1/202452.1 Visual FoxPro的的操作环境操作环境 2.1.1 Visual FoxP

3、ro操作界面操作界面命令命令窗口窗口主窗口:用于主窗口:用于输出结果输出结果菜单菜单栏栏工具工具栏栏状态状态栏栏8/1/20246命令窗口是用来直接输入命令窗口是用来直接输入Visual FoxPro命令的用户命令的用户接口,在命令窗口输入命接口,在命令窗口输入命令后,按回车键,立即执令后,按回车键,立即执行输入命令。行输入命令。命令窗口命令执行结果显示命令窗口命令执行结果显示关闭命令窗口方法:关闭命令窗口方法:按命令窗口右上角的按命令窗口右上角的“关闭关闭”按钮可关闭命令按钮可关闭命令窗口窗口显示命令窗口方法:显示命令窗口方法:1.可选可选“窗口窗口”菜单中菜单中“命令窗口命令窗口”项项2.

4、使用常用工具栏上的使用常用工具栏上的命令窗口按钮命令窗口按钮3.使用快捷键使用快捷键Ctrl+F2。命令窗口介绍命令窗口介绍8/1/20247选择命令项右边的组合键,选择命令项右边的组合键,例如,例如,Ctrl +N、CtrlO、CtrlP等,是执行命令等,是执行命令项的键盘操作快捷键项的键盘操作快捷键选择命令项右边有选择命令项右边有“”符号的,表示符号的,表示选中此命令项时,会选中此命令项时,会弹出相应对话框。弹出相应对话框。选择命令项右边有选择命令项右边有“”符号,的,表符号,的,表示选中此命令项时,示选中此命令项时,会弹出相应级联菜单。会弹出相应级联菜单。菜单项介绍菜单项介绍8/1/20

5、248单击主菜单的单击主菜单的“显示显示”菜菜单,在下拉菜单中选择单,在下拉菜单中选择“工具栏工具栏”菜单项,弹出菜单项,弹出“工具栏工具栏”对话框。对话框。工具栏介绍工具栏介绍8/1/202492.1.2 命令说明命令说明 1.命令的语法格式说明命令的语法格式说明删除文件的命令,其格式为:删除文件的命令,其格式为: DELETE FILE fileName | ? RECYCLE在在命令窗口命令窗口和和程序程序中都使用分号中都使用分号“;”实现实现换换行行输入,绝大多数命令中的关键字和函数名均输入,绝大多数命令中的关键字和函数名均可用可用前前4个字符个字符代替。代替。8/1/202410说明

6、说明filename表示要删除文件的路径及文件名表示要删除文件的路径及文件名 :可选表示符号,方括号中的内容是可选项可选表示符号,方括号中的内容是可选项例如:例如:DELETE FILE DELETE FILERECYCLE| :二选一表示符号,要求用户从本符号的左右二选一表示符号,要求用户从本符号的左右两项中选择一项两项中选择一项例如:例如:DELETE FILE D:aaa.txt DELETE FILE ? :省略符号,它表示在一个命令或函数表达省略符号,它表示在一个命令或函数表达式中,某一部分可以按同一方式重复式中,某一部分可以按同一方式重复DELETE FILE fileName |

7、 ? RECYCLE8/1/202411右边命令输出的结果右边命令输出的结果2. 几个常用命令几个常用命令*与与&命令命令均引导注释内容均引导注释内容?与与?命令命令均显示内容均显示内容,二者区别二者区别CLEAR命令命令清空主窗口屏幕内容,问命令窗口如何清空清空主窗口屏幕内容,问命令窗口如何清空QUIT命令命令关闭关闭VFP窗口窗口注释注释区别:区别:*必须必须为命令行的第为命令行的第1个字符;个字符;&可以在命令之可以在命令之后后区别:区别:?命命令换行显令换行显示示?命令命令接着显示接着显示数数改变命令窗口中的字体:格式改变命令窗口中的字体:格式-字体;字体;改变主窗口的字体大小:改变主

8、窗口的字体大小:_screen.fontsize=308/1/2024122. 几个常用命令几个常用命令DIR命令命令在在VFP主窗口处显示文件的目录主窗口处显示文件的目录例如:例如:DIR d:*.txt &显示显示d盘中所有的盘中所有的txt文件文件MD/RD/CD命令命令MD创建文件夹,创建文件夹,RD删除文件夹,删除文件夹,CD指定当前工作目录指定当前工作目录例如:例如:MD d:vfp &在在d盘创建名为盘创建名为vfp的文件夹的文件夹 RD d:vfp &删除删除d盘上的名为盘上的名为vfp的文件夹的文件夹8/1/202413COPY FILE/RENAME/DELETE FILE

9、命令命令拷贝、拷贝、更名、删除文件更名、删除文件例如:例如:COPY FILE d:*.txt to F: &拷贝拷贝d盘盘txt文件到文件到F盘盘RENAME d:*.txt to d:*.doc &将将d盘盘txt文件改名为文件改名为docDELETE FILE *.txt &删除所有删除所有txt文件文件RUN命令命令调用调用DOS命令或命令或Windows应用程序应用程序例如:例如:RUN /N calc &打开打开Windows计算器程序计算器程序8/1/2024143. 补充:补充:命令的输入和编辑命令的输入和编辑输入命令,按下输入命令,按下回车键回车键( ( Enter键键) )

10、,命令被执行,得到结果,命令被执行,得到结果( (特特别注意:别注意:请使用英文标点符号请使用英文标点符号) )若命令太长,长命令可用分号若命令太长,长命令可用分号( (;) )续行续行,多行的长命令插入新行,多行的长命令插入新行可用可用【Ctrl+Enter】若想若想重复执行命令重复执行命令,则将光标移到以前命令行的任意位置,按,则将光标移到以前命令行的任意位置,按Enter键重新执行此命令键重新执行此命令?1+2+3+4+5?1+2+3+4+5 按下按下Enter键键 1515 ?1+2+3+4+5+6+7+8+9+10+11+12+13+;?1+2+3+4+5+6+7+8+9+10+11

11、+12+13+; 按下按下Ctrl+Enter键键 1414 按下按下Enter键键 105105光标放在末尾光标放在末尾按下按下Enter键,键,此命令被重新此命令被重新执行执行 1515 8/1/202415 2.1.3 配置配置Visual FoxPro操作环境操作环境Visual FoxPro的配置决定了的配置决定了Visual FoxPro系统运行时系统运行时的外观和行为。的外观和行为。Visual FoxPro启动以后,还可以使启动以后,还可以使用用“选项选项”对话框对话框”或或SET命令命令进行附加的配置设定。进行附加的配置设定。8/1/202416 2.1.3 配置配置Visu

12、al FoxPro操作环境操作环境选项对话框选项对话框先先选择选择“设置为设置为默认值默认值”,再选,再选择择“确定确定”,所,所有设置在有设置在下次启下次启动动VFP时仍然有时仍然有效效。只选择只选择“确定确定”,所有设置在,所有设置在下下次启动次启动VFP时不时不起作用起作用。按住按住shift键,键,再选择再选择“确定确定”,则所有设置以,则所有设置以命令方式显示在命令方式显示在主窗口中。主窗口中。8/1/2024172.1.3 配置配置Visual FoxPro操作环境操作环境Set命令命令例如:例如:Set default to F: &设置默认路径为F盘常用的常用的Set命令如表命

13、令如表2-1所示(书所示(书P34页)页)2.2 Visual FoxPro文件类型文件类型 如如表表2-2所示所示(书(书P35页)页) 常考常考 需要熟记各个类型,例如:创建项目文件,生成需要熟记各个类型,例如:创建项目文件,生成.pjx与与.pjt文件文件8/1/2024182.3 Visual FoxPro的项目管理及操作的项目管理及操作选项卡选项卡1.Visual FoxPro 的项目是一的项目是一个系统中文件、数据、文档等个系统中文件、数据、文档等的集合。的集合。2.项目管理器是项目管理器是 Visual FoxPro 中处理数据和对象的主要组织中处理数据和对象的主要组织工具,是系

14、统工具,是系统“控制中心控制中心”。 按钮按钮8/1/202419创建项目创建项目方法一:方法一:CREATE PROJECT命令命令方法二:使用方法二:使用“文件文件”菜单的菜单的“新建新建”按钮按钮方法三:使用常用工具栏上的方法三:使用常用工具栏上的“新建新建”按钮按钮8/1/202420 打开项目打开项目(考试中用到)(考试中用到)使用使用“文件文件”菜单的菜单的“打开打开”按钮按钮默认目录是默认目录是vfp98立即利用立即利用cd命令修改默认目录命令修改默认目录改头去尾按回车改头去尾按回车此时,再使用此时,再使用“文件文件”菜单的菜单的“打开打开”按钮按钮默认目录是默认目录是8/1/2

15、024212.3 Visual FoxPro的项目管理及操作的项目管理及操作2.3.1 页面页面全部全部数据:一个项目中的所有数据(数据库、自由表、查询、视图)数据:一个项目中的所有数据(数据库、自由表、查询、视图)文档:处理数据时所用的全部文档(表单、报表和标签)文档:处理数据时所用的全部文档(表单、报表和标签)类:表单和程序中所用的类库和类类:表单和程序中所用的类库和类代码:程序、代码:程序、API库和应用程序库和应用程序其他:菜单、文本文件和其他文件(如位图、图标等)其他:菜单、文本文件和其他文件(如位图、图标等)2.3.2 定制项目管理器定制项目管理器演示图演示图2-4演示图演示图2-

16、5演示图演示图2-6+号:展开号:展开 -号:折叠号:折叠8/1/2024222.3 Visual FoxPro的项目管理及操作的项目管理及操作 2.3.3 项目管理器的操作(演示)项目管理器的操作(演示)1.命令按钮命令按钮首先选定对象首先选定对象新建:新建:创建一个新文件或对象创建一个新文件或对象添加:添加:把现有文件添加到项目中把现有文件添加到项目中修改:相应设计器修改:相应设计器移去:从项目中移去选定的文件或对象(从项目中还是存储器上?移去:从项目中移去选定的文件或对象(从项目中还是存储器上?)连编:连编一个项目或应用程序(可执行程序)连编:连编一个项目或应用程序(可执行程序)运行运行

17、:执行选定的查询、表单或程序执行选定的查询、表单或程序浏览:浏览:在在浏览浏览窗口中打开选定的表或视图,当且仅当选定一张表或视窗口中打开选定的表或视图,当且仅当选定一张表或视图时可用图时可用关闭:关闭数据库,当且仅当选定一个数据库时可用关闭:关闭数据库,当且仅当选定一个数据库时可用打开:打开数据库,当且仅当选定一个数据库时可用打开:打开数据库,当且仅当选定一个数据库时可用预览:在打印预览方式下显示选定的报表或标签预览:在打印预览方式下显示选定的报表或标签8/1/2024232.3 Visual FoxPro的项目管理及操作的项目管理及操作2.3.3 项目管理器的操作项目管理器的操作2.快捷菜单

18、命令快捷菜单命令右键选择右键选择包含与排除:带斜线的圆圈表示连编时将被排除,所有的包含文件在运行时都包含与排除:带斜线的圆圈表示连编时将被排除,所有的包含文件在运行时都是只读的是只读的设置主文件:设置主文件:把选定的把选定的程序、表单、查询或菜单程序、表单、查询或菜单指定为主文件,该主文件在已指定为主文件,该主文件在已编译的应用程序中作为主执行程序执行,即应用程序的入口程序。编译的应用程序中作为主执行程序执行,即应用程序的入口程序。主程序主程序文件用粗体表示。文件用粗体表示。重命名重命名编辑说明编辑说明项目信息项目信息3.项目间共享文件项目间共享文件一个文件可同时属于不同的项目一个文件可同时属

19、于不同的项目方法方法: :打开两项目,在包含该文件的打开两项目,在包含该文件的项目管理器项目管理器中选择该文件中选择该文件, ,然后然后拖动拖动该该文件到另一个项目容器中即可文件到另一个项目容器中即可8/1/2024242.4 Visual FoxPro语言基础语言基础2.4.1 数据类型(数据类型(P39-40)*仅有于表的字段仅有于表的字段数据类型数据类型中文名称中文名称说明说明大小(字节)大小(字节)Character字符型字符型 C各种字符组成的串各种字符组成的串254Currency货币型货币型 Y货币单位货币单位8Numeric数值型数值型 N整数或小数整数或小数20Float浮点

20、型浮点型* F单精度数值型单精度数值型20Date日期型日期型 D年月日年月日8Datetime日期时间型日期时间型 T年月日时分秒年月日时分秒8Double双精度型双精度型* B 双精度数值型双精度数值型8Integer整型整型* I 整数整数4Logical逻辑型逻辑型 L真或假真或假1Memo备注型备注型* M 超过超过254的不定长字符串的不定长字符串4General通用型通用型* G OLE图象、多媒体对象图象、多媒体对象4数据类型是指数据对象的取值集合,数据类型是指数据对象的取值集合,以及对之可施行的运算集合以及对之可施行的运算集合(相同(相同类型才可以运算)类型才可以运算)。8/

21、1/2024252.4.2 常量与变量常量与变量 大多数程序设计语言允许使用常量、变量和数组大多数程序设计语言允许使用常量、变量和数组来存储数据,来存储数据,VFP还可以使用记录和对象。还可以使用记录和对象。 1. 名称命名规则名称命名规则(P41)l名称中名称中只能包含字母、下划线只能包含字母、下划线“_”、数字和汉字、数字和汉字l名称名称开头只能是字母、下划线或汉字,开头只能是字母、下划线或汉字,不能是数字不能是数字l表的字段名、索引标识名最多只能是表的字段名、索引标识名最多只能是10个字符,其个字符,其余名称长度可以是余名称长度可以是1128个字符个字符l避免使用避免使用系统保留字系统保

22、留字(如如Use、Set、Date )例如:判断下列名称的合法性例如:判断下列名称的合法性cVar 2xcc nVar2 sum_of_score 2_xd _aver_gznum-of-renshu nSum&re _avg#sd set8/1/2024262. 常量:常量:在整个操作过程中值保持不变。在整个操作过程中值保持不变。 u数值型常量:数值型常量:由数字、小数点和正负号构成由数字、小数点和正负号构成如如-3.15 、38、3.12E+28、3.12E-28如如$100.35、$2104u货币型常量:货币型常量:数字前加美元符号数字前加美元符号($)u逻辑型常量:逻辑型常量:逻辑真和

23、逻辑假逻辑真和逻辑假如真:如真:.T. .t. .Y. .y. 假:假:.F. .f. .N. .n.8/1/202427字符型常量:字符型常量:由字符串由字符串“定界符定界符”括起来的一串字符括起来的一串字符u定界符可以是定界符可以是单引号、双引号或方括号单引号、双引号或方括号。u不能用中文标点不能用中文标点的单引号或双引号作为字符串的定的单引号或双引号作为字符串的定界符界符u定界符必须成对出现定界符必须成对出现,不能出现,不能出现“一头为单引号而一头为单引号而另一头为双引号另一头为双引号”等情况等情况8/1/202428u如果某种定界符本身也是字符串的内容,则需要用如果某种定界符本身也是字

24、符串的内容,则需要用另一种定界符表示字符串另一种定界符表示字符串u不包含任何字符的字符串(不包含任何字符的字符串(“”“”)称为)称为“空串空串”,它与包含空格的字符串(它与包含空格的字符串(“ ”“ ”)不同)不同u字符串中的字母,其字符串中的字母,其大小写不等价大小写不等价如如 :苏苏-001”51109876” vfpabcd”ef”g哈哈哈哈“笑笑”ABCDE与与abcde是不同的字符串是不同的字符串8/1/202429时间型和日期时间型常量:时间型和日期时间型常量:定界符是定界符是一对花括号一对花括号,年月,年月日之间用日之间用/或或或或.或或空格空格分隔,时分秒之间用分隔,时分秒之

25、间用:分隔,分隔,u传统的日期格式的语法形式:传统的日期格式的语法形式:mm/dd/yyhh:mm:ssam|pmu严格的日期格式的语法形式:严格的日期格式的语法形式: (系统默认系统默认) yyyy/mm/ddhh:mm:ssam|pm 如:如: 2013-03-012013-03-01 8:12 A8/1/2024303. 内存变量内存变量:在任何时候都可以发生变化。:在任何时候都可以发生变化。 (1)变量的创建变量的创建 内存变量内存变量不需要特别申明不需要特别申明,在使用时可以使用,在使用时可以使用STORE命令命令或或“=”赋值运算符直接进行赋值运算符直接进行赋值赋值。在。在赋值的同

26、时,也完成了变量的创建,并且确定了该赋值的同时,也完成了变量的创建,并且确定了该变量的数据类型以及目前变量的值。变量的数据类型以及目前变量的值。8/1/202431变量的创建变量的创建y=2 &=只能给一个变量赋值只能给一个变量赋值store “123” to x,y,z &store 将同一个值赋值给多个变量使用将同一个值赋值给多个变量使用格式格式格式格式1:1: STORE STORE 数据值数据值数据值数据值 TO TO 变量名变量名变量名变量名格式格式格式格式2 2: 变量名变量名变量名变量名 = = 数据值数据值数据值数据值赋值号赋值号8/1/202432例:例:cVar=VFPSt

27、ore 1 to nVar1,nVar2nVar1=cVar cVar=nVar2?cVar &值为值为1?nVar1 &值为值为vfp?nVar2 &值为值为18/1/202433(2)、控制变量访问)、控制变量访问内存变量用于程序中,可以使用相应的命令指内存变量用于程序中,可以使用相应的命令指定变量的作用域。定变量的作用域。用用LOCAL指定局部变量指定局部变量局部变量只能在当前程序中使用,当它们所属局部变量只能在当前程序中使用,当它们所属的程序运行结束后,局部变量被释放。的程序运行结束后,局部变量被释放。例如:例如: LOCAL CX18/1/202434用用PRIVATE指定私有(隐藏

28、)变量指定私有(隐藏)变量PRIVATEPRIVATE可以把上层变量(调用程序中定义的变可以把上层变量(调用程序中定义的变可以把上层变量(调用程序中定义的变可以把上层变量(调用程序中定义的变量)的值在当前程序中隐藏起来,用户在当前程序中量)的值在当前程序中隐藏起来,用户在当前程序中量)的值在当前程序中隐藏起来,用户在当前程序中量)的值在当前程序中隐藏起来,用户在当前程序中可以正常使用和这些变量同名的变量。可以正常使用和这些变量同名的变量。可以正常使用和这些变量同名的变量。可以正常使用和这些变量同名的变量。例如:例如: PRIVATE CX2, CX38/1/202435用用PUBLIC指定全局

29、变量指定全局变量全局变量在程序运行的全过程中,其值均不全局变量在程序运行的全过程中,其值均不会丢失。会丢失。在命令窗口中创建的任何变量被自动赋在命令窗口中创建的任何变量被自动赋予全局变量。予全局变量。例如:例如: PUBLIC CX4, CX5, CX68/1/202436(3)访问变量访问变量字段变量字段变量和和内存变量内存变量 CNO=100结论:如果表的字段变量和结论:如果表的字段变量和内存内存变量同名,变量同名,则则字段具有更高的优先权字段具有更高的优先权,可以在变量名前,可以在变量名前加加m.前缀或前缀或m-m-来引用内存变量。来引用内存变量。CNO=100?CNO &显示显示CC1

30、12,字段变量的值字段变量的值?m.CNO &显示显示100,内存变量的值,内存变量的值?m-CNO &显示显示100,内存变量的值,内存变量的值8/1/202437 (4)、内存变量的保存与恢复)、内存变量的保存与恢复内存变量是系统在内存中设置的临时存储单元,内存变量是系统在内存中设置的临时存储单元,当退出当退出VFP时其数据自动丢失。若要保存其值,可用时其数据自动丢失。若要保存其值,可用SAVE TO命令将变量命令将变量保存到文件中保存到文件中,命令格式如下:,命令格式如下:SAVE TOSAVE TO 内存变量文件名内存变量文件名内存变量文件名内存变量文件名 ALL LIKEALL LI

31、KE 变量名通配变量名通配变量名通配变量名通配符符符符| | ALL EXCEPTALL EXCEPT 变量名通配符变量名通配符变量名通配符变量名通配符 其中:其中:其中:其中: ALL LIKEALL LIKE 子句指定需保存的变量,子句指定需保存的变量,子句指定需保存的变量,子句指定需保存的变量, ALL ALL EXCEPTEXCEPT子句指定不需保存的变量。子句指定不需保存的变量。子句指定不需保存的变量。子句指定不需保存的变量。缺省缺省缺省缺省ALL LIKE ALL LIKE 或或或或ALL EXCEPT ALL EXCEPT 子句时,表示保存子句时,表示保存子句时,表示保存子句时,

32、表示保存当前所有的内存变量。当前所有的内存变量。当前所有的内存变量。当前所有的内存变量。8/1/202438 内存变量文件的扩展名为内存变量文件的扩展名为.mem例:例: SAVE TO Mvar ALL LIKE ?Yan* &第第24个字符为个字符为“yan”的所有变量保存到的所有变量保存到mvar内存变内存变量文件中量文件中u RESTORE FROM 命令可将保存到文件中的变量命令可将保存到文件中的变量恢复到内存:恢复到内存:RESTORE FROM 内存变量文件名内存变量文件名内存变量文件名内存变量文件名 ADDITIVEADDITIVE 其中:其中:其中:其中: ADDITIVEA

33、DDITIVE子句将文件中的内存变量追加到当前内子句将文件中的内存变量追加到当前内子句将文件中的内存变量追加到当前内子句将文件中的内存变量追加到当前内存中来,否则,当前内存变量被清除。存中来,否则,当前内存变量被清除。存中来,否则,当前内存变量被清除。存中来,否则,当前内存变量被清除。8/1/202439 4. 数组数组数组是变量的有序集合,占用连续的存储单元,数组是变量的有序集合,占用连续的存储单元,( (按行存放按行存放按行存放按行存放) ),组成数组的变量称为数组元素,也,组成数组的变量称为数组元素,也叫做下标变量。叫做下标变量。 数组可以是一维数组,也可以是二维数组,数组可以是一维数组

34、,也可以是二维数组,一一个数组中的数组元素可以是不同的数据类型。个数组中的数组元素可以是不同的数据类型。 (1)数组的声明数组的声明数组在使用前须预先声明数组在使用前须预先声明(定义)(定义)DIMENSION| DECLARE| PUBLIC| LOCAL 数组名(行数,数组名(行数,列数列数)私有数组私有数组全局数组全局数组局部数组局部数组8/1/202440注意注意:1. 数组在声明之后,每个数组元素的数组在声明之后,每个数组元素的默认值均为默认值均为逻辑值逻辑值.F.,数据类型为数据类型为 L。 2. 用一个语句可为所有的数组元素赋相用一个语句可为所有的数组元素赋相同的值。同的值。8/

35、1/202441例例2:dime Y(3) &表示定义了一个一维的数组表示定义了一个一维的数组Y,包含包含3个元素分别个元素分别为:为:Y(1)、Y(2)、Y(3)Y(1)=123Y(2)=“电脑电脑”?Y(3) Z=Y? Z&Y(3)没有赋值,则值为没有赋值,则值为.F.&将将Y(1)的值给变量的值给变量Z&123.F.F.F.123电脑电脑8/1/202442例例3:请写出下列命令输出的结果请写出下列命令输出的结果dime y(2,3)y(1,1)=“12”y(1,2)=y(1)+ “3”store 0 to y(1,3),y(2,1),y(2,2)?y(1,2)?y(6)&123&.F.

36、 二维数组可用一维形式使用二维数组可用一维形式使用12123 000.F.Y(2,3)8/1/2024434. 数组数组 为数组元素赋值:为数组元素赋值:可以使用可以使用SCATTER、GATHER、COPY TO ARRAY、APPEND FROM ARRAY等命令在数组元素与等命令在数组元素与表记录之间传递值。表记录之间传递值。5. 字段变量字段变量第第3章介绍章介绍8/1/2024446. 对象对象:类的实例:类的实例 类:对于拥有数据和一定行为特征的对象集合类:对于拥有数据和一定行为特征的对象集合的描述的描述 Visual FoxPro对象可以是表单、表单集或控件对象可以是表单、表单集

37、或控件 7. 不同数据存储容器的作用域不同数据存储容器的作用域如表如表2-4所示所示(书(书P46)8/1/202445存储数据的作用域存储数据的作用域(P46)(P46)8/1/202446练习练习1、字符型常量也称为字符串,它是由字符串、字符型常量也称为字符串,它是由字符串“定界定界符符”括起来的一串字符。字符串定界符可以是单括起来的一串字符。字符串定界符可以是单引号、双引号或引号、双引号或 。2、以下符号中,属于、以下符号中,属于VFP常量的是常量的是 。A、.T.B、DATEC、EOFD、#VFP6.0#3、VFP中可以用中可以用 命令给多个变量赋同命令给多个变量赋同一个值。一个值。

38、方括号方括号ASTORE8/1/202447练习练习4、下列字符型常量的表示中,错误的是、下列字符型常量的表示中,错误的是 。 A) 品牌品牌 B) 5+3 C) x=y D) 计算机计算机5、以下正确的赋值语句是、以下正确的赋值语句是 。A)A1,A2,A3=10 B)SET 10 TO A1,A2,A3C)LOCAL 10 TO A1,A2,A3 D)STORE 10 TO A1,A2,A38/1/2024482.4.3 Visual FoxPro系统函数系统函数函数:函数:是一种预先编制好的程序代码,可供用户是一种预先编制好的程序代码,可供用户或程序调用。或程序调用。函数包含一对圆括号以

39、便与命令相区别。函数包含一对圆括号以便与命令相区别。函数函数分为分为2大类大类:系统函数和用户自定义的函数系统函数和用户自定义的函数语法规则:语法规则:函数(函数(参数参数1,参数参数2,)函数的函数的三要素:三要素: 功能与名称;功能与名称; 自变量的类型,个数,位置;自变量的类型,个数,位置; 函数的值及值的类型。函数的值及值的类型。注意每个函数的作用,返回值注意每个函数的作用,返回值8/1/2024491.数值函数数值函数:用于处理数值型数据,其返回值也为数值型数据用于处理数值型数据,其返回值也为数值型数据(1)求绝对值:求绝对值:ABS(数值表达式数值表达式)例:例:?ABS(-5.6

40、+5)Store 40 to num1Store 2 to num2?ABS(num2-num1)&显示显示0.60&显示显示388/1/202450(2)求最大值:求最大值:MAX(表达式表达式1,表达式,表达式2,) 例:例:?MAX(-45,2,22,-22)?MAX(a,b)?MAX(2003-11-11,2002-5-6)?MAX(.T.,.F.)&显示显示22&显示显示b&显示显示11/11/03&显示显示.T.(3)求最小值求最小值:MIN(表达式表达式1,表达式,表达式2,) 例:例:?MIN(-45,2,22,-22)Store 40 to num1Store 2 to nu

41、m2?MIN(num2-num1,39)&显示显示-45&显示显示-388/1/202451(4)取整:取整:INT(数值表达式数值表达式) 例:例:?INT(12.5)?INT(-6.8)?INT(9.6-0.5)&显示显示12&显示显示-6&显示显示98/1/202452(5 5)模运算求余数():)模运算求余数():)模运算求余数():)模运算求余数():Mod( a1,a2)Mod( a1,a2)函数函数函数函数功能功能:用用a1的值去除的值去除a2的值,返回余数。函数值的值,返回余数。函数值(余数余数)的符号与的符号与A2相同;相同;l当当a1与与a2符号相同时,函数值为二者的余数;

42、符号相同时,函数值为二者的余数;l当当a1与与a2符号不相同时,函数值为二者相除的余数再加上除符号不相同时,函数值为二者相除的余数再加上除数数a2的的值。值。l被除数被除数A1 的小数位数决定了函数值的小数位数。的小数位数决定了函数值的小数位数。例:例:? mod(36,10) &显示显示6? mod(4*9),90/9)&显示显示6? mod(25.250,5.0) &显示显示0.250? mod(23,-5)&显示显示-2? mod(-23,-5)&显示显示-3?MOD(-23,5) &显示显示28/1/202453(6)四舍五入:四舍五入:ROUND(数值表达式数值表达式,小数位数小数位

43、数)例:例:Set decimals to 4 &小数位为小数位为4位位Set fixed on &小数位是否固定小数位是否固定,默认是不固定默认是不固定?ROUND(1234.1962,3) &1234.1960?ROUND(1234.1962,2) &1234.2000?ROUND(1546.1962,-3) &2000.00008/1/202454(7)求平方根:求平方根:SQRT(数值表达式数值表达式) 例:例:Set decimals to 2?SQRT(2)8/1/202455(8)随机函数:随机函数:RAND( )&产生之间的随产生之间的随机数机数例:例:?RAND( ) &显示

44、一个显示一个01的随机数的随机数 u如何产生如何产生1 1100100之间的随机整数。可用以下公之间的随机整数。可用以下公式:式: 记住此公式记住此公式IntInt(上限上限 - -下限下限 + 1) * Rand() )+ 1) * Rand() )+下限下限? INT(100*rand( )+1*产生一个产生一个ab之间的随机整数为:之间的随机整数为:? INT(b-a+1)*rand( )+a8/1/202456(1)去前后空格去前后空格:ALLTRIM(字符串表达式字符串表达式) 去后缀空格去后缀空格:TRIM(字符串表达式字符串表达式) RTRIM(字符串表达式字符串表达式) 去前缀

45、空格去前缀空格:LTRIM(字符串表达式字符串表达式)例:例:cVar=” VFP ”?ALLTRIM(cVar)cVar=” VFP ”?TRIM(cVar)2.字符函数字符函数8/1/202457(2)求求 表达式表达式1 在在 表达式表达式2 中首次出现的位置中首次出现的位置:AT(表达式表达式1), ,出现次数,出现次数) 注:出现次数默认为注:出现次数默认为1,AT区分大小写区分大小写, ATC功能同功能同上,但不区分字母大小写上,但不区分字母大小写例:例:Store Now is the time for all good men to aStore is the to b?AT(

46、b, a)Store IS to b? AT (b, a)? ATC (b, a)8/1/202458(3)求字符串长度求字符串长度:LEN(字符串表达式字符串表达式)例:例:cVar=”V F P”?LEN(cVar)?LEN(“VFP是简写是简写”)?LEN(ALLTRIM(“ VFPhelp ”)8/1/202459(4)求子串:求子串:SUBSTR(字符串表达式,位置字符串表达式,位置 ,长度,长度)注:长度缺省时指返回结束前的全部字符注:长度缺省时指返回结束前的全部字符 例:例:Store abcdefghijklm to mystring ?SUBSTR(mystring,6,2)

47、?SUBSTR(mystring,6 ) aa=”河海大学河海大学”?SUBSTR(aa,5,4)8/1/202460(5)求左子串求左子串:LEFT(字符串表达式,长度字符串表达式,长度) 求右子串求右子串:RIGHT(字符串表达式,长度字符串表达式,长度)例:例:?LEFT(Redmond, WA,7)?RIGHT(Redmond, WA,7)(6)SPACE(算术表达式算术表达式)例:例:? Space(3+6) &产生产生9个空格个空格8/1/2024613.日期和时间函数日期和时间函数(1)DATE()、TIME()与与DATETIME()例:例:set century off ?d

48、ate()set century on?date()?time()?datetime() set date to long?date()set date to ansi?date() sr=2008/08/08?date()-sr &显示今天显示今天距距2008-08-08多少天多少天 8/1/202462(2)YEAR(日期日期/时间表达式时间表达式)、MONTH(日期日期/时时间表达式间表达式)与与DAY(日期日期/时间表达式时间表达式)例:例:?Year(date()?Month(date() store month(gdBuy+31) to gdMonth?gdMonth8/1/202

49、463(3)DOW(日期日期/时间表达式时间表达式) 注:得到该日期是一周的第几天注:得到该日期是一周的第几天(第一天为星期第一天为星期日日) 例:例:?DOW(date() ?DOW( 2008-08-08)8/1/2024644.数据类型转换函数数据类型转换函数(1) ASC(字符串表达式字符串表达式) &返回最左边的返回最左边的ASCII值值例:例:?ASC(ABCD)?ASC(8)(2) CHR(数值表达式数值表达式) &ASCII值值转成字符转成字符注:注:CHR(13)为为换行符换行符例:例:?CHR(65) &显示显示A ?CHR(57) &显示显示9 8/1/202465(3)

50、 VAL(字符串表达式字符串表达式) &从左到右返回字符表从左到右返回字符表达式中的数字数值,直至遇到非数值型字符时为达式中的数字数值,直至遇到非数值型字符时为止(字符串转成数值)。若表达式的第一个字符止(字符串转成数值)。若表达式的第一个字符不是数字,也不是加、减号,则函数返回不是数字,也不是加、减号,则函数返回0 例:例:a=12b=14?a+b ?val(a)+val(b) ?val(234aaaa)Store 1.25E3 to c?2*val(c)8/1/202466(5) STR(数值表达式数值表达式,宽度,宽度,小数位数,小数位数) &数数值型转字符型值型转字符型注:注:缺省时默

51、认宽度为缺省时默认宽度为10,小数位数为,小数位数为0,若若宽度宽度大于大于整个数值的宽度,则用整个数值的宽度,则用前导空格前导空格填充填充 例:例:?STR(314.15) &显示显示 314 ?STR(314.15,5) &显示显示 314 ?STR(314.15,5,2) &显示显示 314.2?STR(314.15,2) &显示显示 *?STR(1234567890123) &显示显示1.234E+12X=123Y=321?str(X)+str(Y) &显示显示 123 3218/1/202467(4) DTOC(日期日期/时间表达式时间表达式,1) &日期型日期型 转字符型转字符型

52、TTOC(时间表达式时间表达式 ,1/2) &时间型时间型 转字符型转字符型 参数参数: 1用于指定以年月日顺序且无分隔符的用于指定以年月日顺序且无分隔符的形式返回字符型日期,参数形式返回字符型日期,参数2仅返回时间部分仅返回时间部分 CTOD(字符串表达式)字符串表达式) &字符型转日期型字符型转日期型 CTOT(字符串表达式)字符串表达式) &字符型转时间型字符型转时间型8/1/202468例:例:Store 1995/10/31 10:34 to gdThisDate?DTOC(gdThisDate) ?DTOC(gdThisDate,1)?TTOC(gdThisDate)?TTOC(g

53、dThisDate,1)?TTOC(gdThisDate,2)set date to long ?DTOC(date() Store CTOD(2101/12/15) to gdStore CTOT(2001-10-12 22:22) to gd?gd 8/1/2024695.其他常用函数其他常用函数(1) BETWEEN(表达式,下界,上界)表达式,下界,上界)例:例:?Between(3,14,15) &.F.?Between(date(),2001/12/15,2101/12/15) &.T.(2) INKEY(时间表达式)时间表达式)例:例:?INKEY(20) &等待等待20s返回按

54、键的返回按键的ascii值值?INKEY() &一直等待键击一直等待键击8/1/202470(3) TYPE( “表达式表达式” ) 例:例:?TYPE(date()&D?TYPE(12*3)+4) &N(4) IIF(逻辑表达式,返回值逻辑表达式,返回值1,返回值,返回值2)例:例:?IIF(dow(date()=1 OR dow(date()=7, 今今天天休休息息,今天上班今天上班)8/1/202471(5) DISKSPACE()() 例:例:set default to C:?diskspace() ?diskspace()/1024/1024(6) FILE( 文件名文件名)例:例

55、:?FILE(c:config.sys)&显示显示.T.8/1/202472(7) MESSAGEBOX(字符表达式字符表达式,数值表达式,数值表达式,标题,标题)注意:注意: MESSAGEBOX( )的缩写不能写成的缩写不能写成MESS( ),只能写成只能写成MESSAGEB( )例:例:?MessageBox(这是一个例子!这是一个例子!,3+16+256,我的应用程序我的应用程序)?MessageBox(请你换行请你换行+CHR(13)+显示显示,1+64+0,小例子小例子)8/1/202473(8) GETFILE( “文件扩展名文件扩展名”,“文件名文件名”) 例:例:gc=GET

56、FILE(dbf,表文件名表文件名)?gc8/1/202474练习练习1、下列函数中,返回值为字符型的是、下列函数中,返回值为字符型的是 。A、AT( )B、STR( )D、VAL( )D、CTOD( )2、函数、函数Round(123.148,-2)的返回值是)的返回值是_。A、123.148 B、100 C.、123.00 D、123.0003、函数函数LEN(DTOC(DATE(),1)的返回值是的返回值是 。BB88/1/2024752.4.4 运算符与表达式运算符与表达式表达式表达式: 由常量、变量、函数及运算符组成的式子。由常量、变量、函数及运算符组成的式子。1.数值运算符与表达式

57、数值运算符与表达式()(), *或或 (乘方)(乘方), * , / , %(模模) , + , 例:例:?(8-3)*(18/3)-5?4*3-52?35%6&显示显示25&显示显示39&显示显示5, 等同于等同于MOD(35,6)8/1/2024762.4.4 运算符与表达式运算符与表达式表达式表达式: 由常量、变量、函数及运算符组成的式子。由常量、变量、函数及运算符组成的式子。1.数值运算符与表达式数值运算符与表达式(x3+Sqrt(y-10)/(2*x*y)(A-B)/(A*(A+B)8/1/202477(1)字符串连接符:字符串连接符:+例:例:?“1+2 ”+“1” 2)字符串连接

58、符字符串连接符 例例 :?“12 ” “3”+“4”(3) 字符串匹配符:字符串匹配符:$ 例例 :?“ab”$ “abc” ? “王王” $ “王一平王一平”&显示显示1+21&显示显示123 4 &显示显示.T. &显示显示.T. 2.字符运算符与表达式字符运算符与表达式8/1/2024783. 日期(和日期时间)运算符与表达式日期(和日期时间)运算符与表达式有两种运算符有两种运算符“+”、“”(1)一个日期可以减去或者加上一个整数,结果为一个新的日期:一个日期可以减去或者加上一个整数,结果为一个新的日期: ? 2009/11/07 2 ? 2009/11/07 + 20 ?2009/11

59、/07 10:10:10 p+50&显示显示11/05/09&显示显示11/27/09&显示显示11/07/09 10:11:00 pm8/1/2024793. 日期(和日期时间)运算符与表达式日期(和日期时间)运算符与表达式(2)两个日期两个日期(日期时间日期时间)相减:结果为两个日期相差的天数相减:结果为两个日期相差的天数(秒秒数数),可以是负数。,可以是负数。 ?2009/11/07 2009/11/02 ?2009/11/02 2009/11/07 ?2009/11/07 10:10:10 p 2009/11/06 10:10:10 p 注意:不可以对两个日期型数据或日期时间型数据注意

60、:不可以对两个日期型数据或日期时间型数据进行相加运算进行相加运算&显示显示5&显示显示-5&显示显示864008/1/202480 用于任意数据类型的数据比较,要求符号两边的数据类用于任意数据类型的数据比较,要求符号两边的数据类型相同,运算结果为型相同,运算结果为逻辑值逻辑值。主要有主要有、=、或或#或或!=、=、=? “10”“9”? “11”=“11”? “ABCD” = “ABC”*注:默认的字符序列是注:默认的字符序列是PinYin(P60)字符串字符串精确比较精确比较:=&显示显示.F.&显示显示.T.&显示显示.T.4.关系运算符与表达式关系运算符与表达式8/1/202481当当

61、SET EXACT ON ?ABCDE=ABC & .F. ? ABCX=ABCX & .T. 当当 SET EXACT OFF ? ABCDE= ABC & .T. ? ABC=ABCDE & .F. nSET EXACT ON 为精确比较,即参加比较的两个字符串为精确比较,即参加比较的两个字符串必须完全相同,才返回逻辑真值;必须完全相同,才返回逻辑真值;nSET EXACT OFF(默认值)默认值)为不精确比较,即右端字符为不精确比较,即右端字符串是左边字符串的左子串时,其值为逻辑真值串是左边字符串的左子串时,其值为逻辑真值8/1/202482用于操作逻辑类型的数据,并返回一个用于操作逻辑

62、类型的数据,并返回一个逻辑值逻辑值。 ()()、NOT或或!、AND、OR例:例:*判断今天是判断今天是9月月4号吗?号吗??day(date()=4 and month(date()=9*判断今天是不是周末?判断今天是不是周末??dow(date()=1 or dow(date()=75.逻辑运算符与表达式逻辑运算符与表达式8/1/202483各种运算符之间的优先级为:各种运算符之间的优先级为: 算术运算符算术运算符关系运算符关系运算符逻辑运算符,逻辑运算符,括号可以括号可以改变运算顺序改变运算顺序。特别注意:特别注意:运算的数据类型的匹配!运算的数据类型的匹配!例如,设例如,设X=2,Y=

63、6,Z=8,则表达式:则表达式: X+Y=Z AND X*Y2*Z 的值为的值为.T.表达式表达式: (Y+Z) % 3 =Z 的值为的值为 .T.8/1/2024846、名称表达式、名称表达式名称表达式是由圆括号名称表达式是由圆括号()()括括起来的起来的字符表达式字符表达式,它可用来替换命,它可用来替换命令和函数中的名称。名称表达式的作令和函数中的名称。名称表达式的作用详见以下例子:用详见以下例子:8/1/202485 N=100 M= N & 注意不要用中文的引号注意不要用中文的引号 STORE 123.45 TO (M) 用名称表达式替换变量名用名称表达式替换变量名N & 注意不能用赋

64、值号注意不能用赋值号= ?N & 结果为结果为123.45实际上对变量实际上对变量N两次赋值。两次赋值。(1)用名称表达式替换变量名)用名称表达式替换变量名8/1/202486 DNAME= XS.DBF USE (DNAME) (2)用名称表达式替换文件名)用名称表达式替换文件名8/1/202487string1=VISUAL FOXPRO 6.0 str_var=(string1)&书上书上P62有错有错? SUBSTR ( (str_var) , 1 , 6) & 等价于等价于SUBSTR (string1 , 1 , 6) & 结果为结果为VISUAL(3)用名称表达式作为函数的参数)

65、用名称表达式作为函数的参数8/1/202488 DBN=JXSJ DBFN=XS USE (DBN+!+DBFN) & 打开打开 JXSJ!XS(4)用字符表达式构成一个名称表达式)用字符表达式构成一个名称表达式8/1/2024897、宏替换、宏替换宏替换与名称表达式具有相似的作用,宏替换与名称表达式具有相似的作用,可使用宏替换的方法用内存变量替换名称。可使用宏替换的方法用内存变量替换名称。在使用宏替换时,将连字符(在使用宏替换时,将连字符(&)放在变)放在变量前,告诉量前,告诉VFP将此变量值当作名称使用,将此变量值当作名称使用,并使用一个句号(并使用一个句号(.)来结束这个宏替换)来结束这

66、个宏替换表达式。表达式。8/1/202490(1)宏替换可以替换整个命令,名称表达式不行)宏替换可以替换整个命令,名称表达式不行 AA=“DIR” &AA & 执行执行DIR命令命令 (AA) & 不能识别的命令动词不能识别的命令动词8/1/202491 FF=JS.XM LOCATE FOR &FF=张三张三 & 能正确定位能正确定位 LOCATE FOR (FF)=张三张三 & 已到定位范围末尾已到定位范围末尾(2)宏替换可以构成表达式,)宏替换可以构成表达式, 名称表达式不能名称表达式不能8/1/202492 A= QWER &A=123 & 宏替换可以出现在赋值语句左边宏替换可以出现在

67、赋值语句左边? QWER & 值为值为123 (A)= 123 &出错出错, 名称表达式不能出现在赋值语名称表达式不能出现在赋值语句左边句左边(3)在某些命令和函数中不能使用名称)在某些命令和函数中不能使用名称表达式表达式8/1/202493练习练习1、表达式、表达式STR(YEAR(DATE()的数据类型为的数据类型为 。A、N B、C C、D D、M2、已知字符串已知字符串A=“321”, B=“123”。则表达式。则表达式A-B的运算结果是的运算结果是 。A、321123B、321 123C、-198 D、1983、在下列有关日期时间型表达式中,语法上错误的是、在下列有关日期时间型表达式

68、中,语法上错误的是 。A、DATETIME( ) + 1000 B、DATE() 1000C、DATETIME( ) - DATE( ) D、DTOC(DATE( ) - DTOC(DATETIME( ) CBA8/1/202494练习练习4、表达式表达式 LEN(SPACE(3)-SPACE(2)的结果为的结果为 。 5、表达式、表达式 BETWEEN(AT(me,welcome),3,5)的值是的值是 。5.F.8/1/2024952.4.5 空值处理空值处理1、NULL值的特点值的特点(1)NULL即为没有任何值即为没有任何值(2)数值)数值0和空字符(空格)是有值的,与和空字符(空格)

69、是有值的,与NULL不同不同(3)排序优先于其他数据)排序优先于其他数据(4)可以出现在任何使用值或表达式的地方)可以出现在任何使用值或表达式的地方8/1/202496(1)常数:)常数: .NULL. & 例例: X=.NULL.(2)输入:输入: CTRL+0 & 交互方式交互方式(3)测试函数:)测试函数: ISNULL( ) & 测试字段或表达式是否为测试字段或表达式是否为NULL2、作为值使用、作为值使用NULL值值8/1/202497NULL 的实际应用100000:表示存款为0NULL:表示开始就没有存款表示开始就没有存款8/1/202498nullnull值不是一种数据类型值不

70、是一种数据类型,当给字段或变量当给字段或变量赋赋.NULL.NULL.值时,该字段或变量的数据类型不变,值时,该字段或变量的数据类型不变,只是值变为只是值变为.NULL.NULL.。例如,例如,STORE 5 TO STORE 5 TO nXnXnXnX = .NULL. = .NULL.? TYPE? TYPE( nXnX )& VFP6.0& VFP6.0报告数据类型为数值型报告数据类型为数值型8/1/2024993、NULL在在命令和函数中的行为命令和函数中的行为NULL值可以作为参数传递,但应遵从下列规则:值可以作为参数传递,但应遵从下列规则:(1)给命令传递)给命令传递NULL值将产

71、生错误值将产生错误(2)接受)接受NULL值为参数的函数的结果也为值为参数的函数的结果也为NULL值值(3)若向本应接受数值型的函数传递)若向本应接受数值型的函数传递NULL值,将产生错误值,将产生错误例:例: N=.NULL. ?STR(123.45, N, 2 )系统提示:函数参数的值、类型或数目无效系统提示:函数参数的值、类型或数目无效8/1/2024100(4)?empty()函数:函数:确定表达式是否为空值。确定表达式是否为空值。对对空白字段、空字符串、空白字段、空字符串、0都返回都返回.T.?isblank()函数:函数:对空白字段、空字符串都返回对空白字段、空字符串都返回.T.?isnull()函数:函数:对对null返回返回.T.(5)如果参与计算的所有值都为)如果参与计算的所有值都为null,则,则VFP的的合计函数如合计函数如SUM将产生将产生NULL,否则任何否则任何null值值均将被忽略。均将被忽略。8/1/20241014、NULL在逻辑表达式中的行为在逻辑表达式中的行为实验实验2 常量常量 变量变量 函数和表达式的使用函数和表达式的使用8/1/2024102

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号