《语言基础部分》PPT课件.ppt

上传人:小飞机 文档编号:5606710 上传时间:2023-08-01 格式:PPT 页数:56 大小:477KB
返回 下载 相关 举报
《语言基础部分》PPT课件.ppt_第1页
第1页 / 共56页
《语言基础部分》PPT课件.ppt_第2页
第2页 / 共56页
《语言基础部分》PPT课件.ppt_第3页
第3页 / 共56页
《语言基础部分》PPT课件.ppt_第4页
第4页 / 共56页
《语言基础部分》PPT课件.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《《语言基础部分》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《语言基础部分》PPT课件.ppt(56页珍藏版)》请在三一办公上搜索。

1、第二章 Visual FoxPro 数据库管理系统概述,2.1 Visual FoxPro的操作环境2.2 Visual FoxPro文件类型2.3 Visual FoxPro的项目管理及其操作2.4 Visual FoxPro 语言基础,8/1/2023,2,本 章 重 点,数据类型数据存储函数表达式,8/1/2023,3,2.4.1 数据类型,界面操作是基础程序设计是根本数据类型:指数据对象取值的集合,以及对其可施行的运算集合 数据是反映客观事物属性的记录。通常分为数值型和非数值型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。Visual FoxPro系统为了使用户建立和

2、使用数据库更加方便,将数据细化分为以下几种类型:,8/1/2023,4,1.字符型(C:Character)字符型数据描述不具有计算能力的文字数据类型,是最常用的数据类型之一。字符型数据(Character)是由任意字符:如汉字和ASCII字符集中可打印字符(字母字符、数字字符、空格、符号等)组成,长度范围是0254个字符 使用时必须用定界符双引号(“”)或单引号()括起来。注意:此类数据必须用西文方式的单或双引号括起。?“总经理”学号、工号、电话号码、邮政编码(看上去象数值型)一般用字符型表示。,8/1/2023,5,2.货币型(Y:Currency)描述货币数据cPrice=$100.35

3、63.数值型(N:Numeric)数值型用来表示数量.数值型数据通常分为以下四种类型:(1)基本数值型 数值型数据(Numeric)是由数字(09)、小数点和正负号组成。最大长度为20位(包括、和小数点)。,8/1/2023,6,(2)浮点型*(F:Float)浮点型数据(Float)是数值型数据的一种,与数值型数据完全等价。浮点型数据只是在存储形式上采取浮点格式。(3)双精度型*(B:Double)双精度型数据(Double)是更高精度的数值型数据,并且位数固定。它只用于数据表中的字段数据类型的定义,并采用固定长度浮点格式存储。(4)整型*(I:Integer)整型数据(Integer)是不

4、包含小数点部分的数值型数据。它只用于数据表中的字段类型的定义。整型数据以二进制形式存储,大小占4个字节。,8/1/2023,7,4.日期型(Date)用于表示有关日期的数据:birthday=1968/05/20日期型数据以yyyy/mm/dd样式保存严格日期格式“yyyy/mm/dd”日期显示格式:mm/dd/yyyy mm/dd/yyyy yyyy/mm/dd yyyy年mm月dd日格式受SET DATE、SET MARK、SET CENTURY等命令的影响格式界面更改:工具/选项/区域,8/1/2023,8,5.日期时间型(DateTime)表述日期时间或二者兼而有之的数据tdateti

5、me=3/11/2005 10:30pmTdateonly=3/11/2005Ttimeonly=10:30 am 日期时间型数据占8字节,4个字节表示日期,另4个字节表示时间 日期时间型数据的缺省默认值:1899年12月30日时间格式受SET HOURS SET SECONDS等命令的影响,8/1/2023,9,6.逻辑型(Logical)逻辑型数据(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位字节。如:是否必修课?7.备注型*(Memo)备注型数据(Memo)用于在表字段中存放较长的字符型数据类型。可以把它看成是

6、字符型数据的特殊形式。备注型数据没有数据长度限制,仅受限于现有的磁盘空间。它只用于数据表中的字段类型的定义,其字段长度固定为4位,用于存放引用信息,指向该字段的真正内容。而实际数据被存放在与数据表文件同名的备注文件中,长度根据数据的内容而定。,8/1/2023,10,8.通用型*(General)用于在表中存储OLE(对象链接与嵌入)对象 通用型数据(General)是用于存储OLE对象的数据。通用型数据中的OLE对象可以是电子表格、文档、图片等。它只用于数据表中的字段类型的定义。OLE对象的实际内容、类型和数据量则取决于连接或嵌入OLE对象的操作方式。如果采用连接OLE对象方式,则数据表中只

7、包含对OLE对象的引用说明,以及对创建该OLE对象的应用程序的引用说明;如果采用嵌入OLE对象方式,则数据表中除包含对创建该OLE对象的应用程序的引用说明,还包含OLE对象中的实际数据。通用型数据长度固定为4位,同样用于存放引用信息,指向该字段的真正内容。实际数据长度仅受限于现有的磁盘空间。,8/1/2023,11,诸多类型的数据在vfp中如何存储?具体存放手段是什麼?用什么“器皿”来承载它们?,8/1/2023,12,VFP允许使用常量、变量、数组、字段和对象来存储数据,它们也被称为存储数据的容器 1、存储容器名称命名规则2、常量(Constants)3、内存变量(Variables)4、数

8、组(Arrays)5、字段(Fields)6、对象(Objects),2.4.2 数据存储容器,8/1/2023,13,一、存储容器名称命名规则1.名称中只能包含字母、下划线、数字符号和汉字符号2.名称的开头只能是字母、汉字、下划线,不能是数字符号注意:尽可能避免下划线作为名称开头 表的字段名不能用下划线开头 3.名称的长度可以是1-128个字符长度 注意:表的字段名、索引标识名只能为10个字符 4.应避免使用系统保留字,8/1/2023,14,是一个命名的数据项,该项的值在整个数据操作过程中保持不变常量是指在所有的操作过程中保持不变的数据容器3.14159256,“asdfhjh”常量类型

9、VFP常量有六种:C N L D T(datetime)Y 不同数据类型的常量表示方法不一样,二、常量,8/1/2023,15,字符常量:定界符+字符串王欢“I am a student.”123.44 任何用一对西文半角的单引号、双引号或方括号扩起来的字符串(字母、数字、汉字或其他符号)都是字符常量.p42,注意!,8/1/2023,16,数值常量:任意数字串,即常数 构成:数字(09)、小数点、正负号 123.44,2E+4货币常量:货币值构成:美元符号($)+数字值$45.23逻辑常量:.T.,.F.;.Y.,.N.定界符:.,8/1/2023,17,日期型常量:定界符+日期数据 10/

10、12/98(定界符-花括号)日期时间型常量:定界符+日期时间数据 10/12/98 7:50(定界符-花括号)VFP日期格式:传统格式:mm/dd/yy hh:mm:ss a|p严格格式:yyyy/mm/dd hh:mm:ss a|p P28:格式转换命令,8/1/2023,18,补充:编译常量 用#DEFINE 预处理命令定义常量名称 如:#DEFINE OPER“输入的数据非法!”#DEFINE pi 3.1415926 定义过的编译常量名称不能另作它用,8/1/2023,19,三、内存变量,内存变量是由用户定义的计算机内存中的一个(组)存储单元,简称变量:内存变量(变量)内存变量在操作过

11、程中其值、数据类型可以改变变量可以是系统允许的任意数据类型 可在任何时候改变现值,新来旧去、取之不尽变量以变量名标识;变量名是存储位置的符号标识;存储位置中存放的数据在VFP程序操作期间通过该名称来读写。,8/1/2023,20,VFP6.0中的变量,字段变量:构成数据表结构的变量,变量是与常量操作相对的数据存储容器,内存变量:是系统在内存中设置的一种临时存储单元,当包含它的程序执行完后,或者退出vfp时,这种变量将自动释放(对应数据自动丢失)内存变量有:简单变量数组变量系统变量简单变量:内存中的一个存储单元数组变量:一系列有组织的内存结构变量,系统变量:vfp系统自己定义的变量,随系统启动而

12、存在,都以“”下划线开头(可在命令窗口使用display memory命令查看),1.变量的创建STORE 3 TO nVar(STORE:赋值命令)nVar=3(=赋值运算符)在赋值的同时,完成了变量的创建,并确定了该变量的数据类型以及目前变量的值(初值)STORE 与=区别:P292.控制变量访问 变量有其固有的作用范围:(1)用LOCAL指定局部变量(本层)(2)用PRIVATE指定私有变量(可以与上层同名)(3)用PUBLIC指定全局变量(公共)在命令窗口中创建的任何变量或数组被自动赋予全局属性,8/1/2023,22,Procedure sub Private m m=“qwert”

13、n=“aaaa”?m?n?t,public m,nLocal t t=9 m=3n=4do sub?m?n,8/1/2023,23,3.访问变量 如果字段和变量同名,则字段具有更高的优先权?nVar?m.nVar?m-nVar,8/1/2023,24,4.内存变量的保存与恢复(p44)(1)Save to FileName All like Skeleton|All Except Skeleton(2)Restore FROM FileName ADDITIVE,8/1/2023,25,数组由一系列被称为元素的有序数据值系列构成,可以用序号引用这些元素。数组属于内存变量数组有一维数组和二维数组

14、1.数组的声明(数组的定义)数组使用前应预先声明:即数组的定义 DECLARE X(5),Y(5,5)私有数组 DIMENSION A(10),B(10,10)私有数组 PUBLIC X(3,4)全局数组 LOCAL M(9)局部数组数组在声明之后,每个元素被默认地赋予.F.值,4、数组,8/1/2023,26,2.为数组元素赋值例:Dimension arrayname6,3 Arrayname1,2=1113可以用一个语句为所有元素赋相同的值Arrayname=1113STORE 10 TO A,B(2),M(4)与数组相关的命令(可在数组元素与字段之间移动值)SCATTER、GATHER

15、、COPY TO ARRAY、APPEND FROM ARRAY(p99)3.处理数组元素的函数SORT(),ASCAN(),ADEL(),AINS(),8/1/2023,27,字段 是二维表的记录中拥有特定数据类型的命名位置.,5、字段,6、对象对象是类的实例,类是对于拥有数据和一定行为特征的对象集合的描述。对象:表单,表单集,控件对象都有属性和方法,并能响应特定的事件,8/1/2023,28,7、不同数据容器作用域的差异 当前系统运行中某数据是否可用取决于其在程序中的声明方式和位置,8/1/2023,29,2.4.4 运算符与表达式 用来处理同类型数据(常量、变量、数组、字段等):p58,

16、字符操作符(+,-,$)(主要是+)日期和日期时间操作符(+,-)(可以不同类型)逻辑操作符((),NOT/!,AND,OR)关系操作符(,=,/#/!=,=,=)SET ANSI SET EXACT数值操作符((),*/,*,/,%,+,-),注意:运算符的优先级,8/1/2023,30,2.4.3 函数,函数:是预先编制好的计算模块(程序代码),可供VFP程序或用户在任何地方调用;函数接收一个或多个参数而返回单个值,它可嵌入到一个表达式中;函数格式为:函数名(参数)如:date()bof()eof()参数是供函数或过程操作的一个值 如:space(10)中的“10”即为参数.函数分系统函数

17、和用户自定义函数,8/1/2023,31,1、系统函数(P46表2-5)数据类函数数据库类函数环境类函数输入输出类函数程序设计类函数,8/1/2023,32,函数:是vfp语言的重要组成部分一个大的Vfp应用程序往往是由若干个过程(子程序)和函数组合而成的函数将最常用的某些程序功能所对应的命令代码集中起来形成文件,供应用程序随时调用如何正确使用函数?熟记各函数的名称、功能作用熟练掌握其语法结构、参数含义掌握各函数的返回值内容,8/1/2023,33,2、常用函数举例1 数值函数ABS():求绝对值MAX():求最大值MIN():求最小值MOD():求模(取余)ROUND():返回圆整到指定位数

18、的数值表达式SQRT():求平方根RAND():返回01之间的随机数,8/1/2023,34,2、常用函数举例2字符函数ALLTRIM()、LTRIM()、RTRIM()、TRIM删除空格AT()、ATC():查找子字符串出现的位置LEN():求字符串的长度,汉字宽度为2SUBSTR():求子串(从中间开始)LEFT()和RIGHT:求子串(从左边、右边开始)SPACE():返回指定的空格,8/1/2023,35,2、常用函数举例3 日期与时间函数DATE():日期TIME():时间DATETIME():日期时间YEAR()、MONTH()、DAY()返回年份、月份、日DOW():返回星期中的

19、第几天,第一天为星期天,8/1/2023,36,2、常用函数举例4数据类型转换函数ASC():返回字符串最左边的ASCII值;CHR():返回指定ASCII值的字符,0255之间;VAL():字符型转换为数值型;DTOC()、TTOC()、CTOD()、CTOT()日期D、时间T、字符C之间的转换STR():数值型转换为字符型,8/1/2023,37,2、常用函数举例5其他常用函数BETWEEN(e1,e2,e3):测试e1是否在e2和e3之间,返回值为逻辑型,字符型受限Set Collate to;INKEY(t):返回一个编号,等待期间键盘和鼠标的操作,t表示等待的时间,单位为秒;TYPE

20、(x):返回x的类型;IIF(eTest,e1,e2):测试eTest的值(逻辑型)为真,返回e1的值,为假则返回e2的值;DISKSPACE():返回磁盘驱动器上可用字节数;FILE(”pathfilename”):判断文件是否存在;MESSAGEBOX():消息对话框,8/1/2023,38,(7)MESSAGEBOX函数使用举例语法格式Messagebox(提示信息,对话框类型,对话框标题)参数设置见P57表2-6、表2-7、表2-8、表2-9,8/1/2023,39,(8)GETFILE函数使用举例语法格式GETFILE(cFileExtensions,cText)其中:cText 用

21、于指定文件文本框前的标签;文件扩展名cFileExtension用于指定没有选择“所有文件”菜单项时,列表中显示的文件扩展名;注意点:P57,8/1/2023,40,2.4.4 表达式,vfp表达式:指通过vfp运算符将常量、变量、函数、字段名、控件对象以及属性等组合起 来可以进行运算的式子。vfp表达式求值结果:返回一个单个值(可以是各种数据类型)单个的常量、变量、函数、字段名、控件和 属性是表达式的特例注意:vfp表达式为同类数据类型的运算!应用举例:有效性规则 逻辑表达式查询条件 逻辑表达式表索引-索引表达式,8/1/2023,41,分类:根据vfp提供的运算符表达式可分为:1.字符表达

22、式 关键点:字符表达式组成条件?字符表达式运算结果??教师+js.xm+的基本工资是:+str(js.jbgz,7,2)2.日期表达式 关键点:日期表达式组成条件?日期表达式运算结果?DATE()-5/13/683.算术表达式,8/1/2023,42,4.逻辑表达式(ximing=“计算机系”OR ximing=“信息管理系”)AND gl=10 AND xb=“男”特殊点:参与运算的元素包含了任何能 够返回逻辑值的表达式,自左向右运算在运算过程中,当运算出某个中间结果后,若已经能够确定最终的结果,那么将终止本逻辑表达式中后面部分的运算,8/1/2023,43,5、关系表达式 关系表达式是由关

23、系运算符及一般表达式(以上四种表达式的一种)组成的式子:求值结果为:逻辑值?(100/10+3.14)=2 关系运算表达式是运算符两边同类型数据元素的比较,关系成立结果为(T);反之,结果为(F)关系表达式实质上是一种逻辑表达式,8/1/2023,44,6.名称表达式名称表达式:是由圆括号括起来的一个字符表达式,可以用来替换命令和函数中的名称(字段名、变量名、窗口名、菜单名、文件名、对象名)。该字符表达式最为常见的模式为单个字符变量或数 组元素为对象操作及命令和函数操作提供了灵活性 在VFP系统中,允许用户给操作对象定义一个名字 将这一名字存入到内存变量或数组元素中,当用户在使用命令和函数时需

24、提供操作对象名称时,就可用相应的内存变量或数组元素通过名称表达式来代替,这给程序开发带来很多便利。存于内存变量和数组元素中的操作对象名,用户可以通过名称表达式或宏替换两种操作方法完成。,8/1/2023,45,实例用名称表达式替换命令中变量名nvar=100Var_name=”nvar”Store 123.4 to(var_name)?nvar用名称表达式替换命令中的文件名Dbf_name=“js”Use(dbf_name),8/1/2023,46,用名称表达式作为函数的参数String1=“js”?select(string1)用字符表达式来构成一个名称表达式 Db_name=“jxsj”D

25、bf_name=“js”Use(db_name+”!”+dbf_name)使用名称列表 Use xs Fld1=“xh”Fld2=“xm”Browse fields(fld1),(fld2),8/1/2023,47,7.宏替换宏替换与名称表达式具有相似作用,目的也在于使用内存变量替换vfp某些操作中的名称用 连字符&放在变量前,告诉VFP此变量值用作名称使用即可如用宏替换与其它字符组合为一名称,则用句点(.)来结束这个宏替换举例,8/1/2023,48,Field_name=“js.xm”Locate for&field_name=“程东萍”Locate for(field_name)=“程东

26、萍”(出错)在某些命令和函数中不能使用名称表达式Var_name=“cvar3”&var_name=“test2”(var_name)=“test2”(error!)Store“test1”to(var_name)?&var_name?(var_name)(error!),8/1/2023,49,比较,(1)名称表达式运行速度比宏替换要快(2)宏替换的使用范围更广些宏替换可以替换整个命令,名称表达式不行Cmd_name=“DIR”&cmd1_name?(cmd_name)(出错)宏替换可用以构成表达式,名称表达式则不能,8/1/2023,50,2.4.5 Null值处理,VFP支持空值null

27、值,降低了表达未知数据的难度,方便与其他SQL数据库产品共同工作Null值具有以下特点:等价于没有任何值。与0、空字符串(“”)或空格不同。排序优先于其他数据。在计算过程中或大多数函数中都可以用到null值。Null值会影响命令、函数、逻辑表达式和参数的行为。Null值可以出现在任何使用值或表达式的地方,8/1/2023,51,1.在程序和表达式中使用NULL程序设计中使用.NULL.标记字段中以交互方式键入【Ctrl+0】来赋null值ISNULL()函数:判断当前字段值、变量值、某逻辑表达式求值结果是否为null实例:Use jsModi stru(使xm允许null)xm处ctrl+0:

28、(输入null值)?isnull(xm)(运算结果.t.),8/1/2023,52,2.作为一个值使用NULL,8/1/2023,53,可以使用数组命令和字段命令操作null值,例:DIMENSION aX4 STORE.NULL.T0 aX注意:赋.NULL.值后,字段或变量的数据类型不变Store 5 to nxNx=.null.?type(“nx”)(数值型)3、空值在命令和函数中的行为 见表2-15:说明了命令和函数对null 值的解释。,8/1/2023,54,4、Null在逻辑表达式中的行为,在条件表达式中若遇到Null值,该条件表达式为“假”,8/1/2023,55,5.使用NU

29、LL作为参数给命令传递null值将产生错误接受.NULL.为有效参数的函数其结果为.NULL.向本应接收数值型参数的函数传递.NULL.值,将产生错误N=.null.Use js alias&n?substr(“Hello,world”,n,5)传递null值时,ISBLANK()、ISDIGIT()、ISLOWER()、ISUPPER()、ISALPHA()和EMPTY()返回“假”(.F.),而ISNULL()返回“真”(.T.),8/1/2023,56,INSERT-SQL和SELECT-SQL命令用IS NULL和IS NOT NULL子句处理null值。在这种情况下,INSERT、UPDATE和REPLACE将null值放入记录中SQL合计函数将忽略null值若所有值皆为null,则合计函数产生.NULL.,否则任何null值将被忽略,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号