1.02k likes | 1.16k Views
Chongqing University of Arts & Sciences. Visual Foxpro 程序设计. 第 3 章 Visual FoxPro6.0 语言基础. 3.1 数据类型、常量及变量. 3.1.1 数据类型. 数据是 DBS 的操作和管理对象 . 数据内容 : 指所描述客观事物的具体特性 , 即数据值 . 数据形式 : 数据存储形式和运算方式 , 即数据类型 , 每一个数据都有一定的类型 . 为使用户建立和操作数据库更加方便,在 VFP 系统中提供了多种不同的数据类型。下面主要介绍 11 中常用的数据类型。.
E N D
Chongqing University of Arts & Sciences Visual Foxpro 程序设计
3.1 数据类型、常量及变量 3.1.1 数据类型 数据是DBS的操作和管理对象. 数据内容: 指所描述客观事物的具体特性,即数据值. 数据形式:数据存储形式和运算方式,即数据类型,每一个数据都有一定的类型. 为使用户建立和操作数据库更加方便,在VFP系统中提供了多种不同的数据类型。下面主要介绍11中常用的数据类型。
1)字符型(Character,C) 字符型(Character)数据是由中英文字符、数字字符和其他ASCII字符组成的字符序列,其长度(即字符个数)范围是0~254个字符,每个字符占1个字节。 2)数值型(Numeric, N) 数值型(Numeric)数据是表示数量并可以进行算术运算的数据类型。数值型数据由数字0~9以及正负号(+和-)和小数点(.)组成。 3)浮点型(Float,F) 与数值型数据完全等价,只是在存储形式上采取浮点格式且数据的精度要比数值型数据高。只能用于字段定义.
4)货币型(Currency,Y) 数据的第一个数字前冠一个货币符号($)。默认小数位4位,小数位超过4个字符的数据,系统将会按四舍五入原则自动截取。占8个字节. 5)双精度型(Double,B) 它只用于数据表中的字段类型的定义,并采用固定长度浮点格式存储。 6)整型(Integer,I) 只用于数据表中的字段类型的定义,不带小数点的数值类型,占4个字节。只能用于字段定义。在表中整型数据以二进制形式存储。 7)日期型(date,D) 长度固定为8个字节。日期型数据包括年、月、日三个部分,每部分间用规定的分隔符分开。
8)日期时间型(dateTime,T) 描述日期和时间的数据,长度固定为8个字节。除包括日期数据的年、月、日外,还包括时、分、秒以及上午、下午等内容。 9)逻辑型(Logic,L) 逻辑型数据是描述客观事物真假的数据,用于表示逻辑判断结果。 逻辑型数据只有真和假两种值,长度固定为1个字节。 10)备注型(Memo,M) 用于存放较长的字符型数据类型。备注型数据没有数据长度限制,仅受限于现有的磁盘空间。其字段长度固定为4个字符,用于存储备注文件的地址(指针),而实际数据被存放在与数据表文件同名的备注文件(*.dpt)中,长度根据数据的内容而定。只能用于字段定义
11)通用型(General,G) 通用型数据是用于存储OLE对象的数据。通用型数据中的OLE(对象链接嵌入)对象可以是电子表格、文档、图片等。只能用于字段定义. 通用型数据长度固定为4个字符,实际数据长度仅受限于现有的磁盘空间。只能用于字段定义.
常量用以表示一个具体的、不变的值. VF按常量取值的数据类型,将常量分为6种类型: 数值型常量、货币型常量、字符型常量、逻辑型常量、日期型常量、日期时间型常量。 1) 数值型常量 数值型常量也是常量,用来表示一个数量的大小,由数字0~9、小数点和正负号构成。用科学记数法形式表示很大或很小的数值型常量.数值型数据在内存中用8个字节表示. 根据处理数据的形式来划分,VF中有常量,变量,表达式和函数四种形式的数据. 3.1.2 常量
2) 货币型常量 用来表示货币量,书写时须加上前置的符号($)采用4位小数。如一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。如$123.456789将存储为$123.4568,没有科学记数法形式,在内存中占用8个字节。 3) 字符型常量 • 也称为字符串,表示:半角单引号、双引号或方括号把字符串括起来。单引号、双引号或方括号称为定界符。许多常量都有定界符,不作为常量本身的内容,但它规定了常量的类型以及常量的起始和终止界限。 • 注:(1)定界符必须成对匹配,不能一边用单引号而另一边用双相号. (2)如某定界符本身也是字符串的内容,则需要用另一种定界符为该字符串定界。如“”abcd””是错误的。(3)空串(不包含任何字符的字符串其长度为零)和空格串(包含若干空格的字符串)是有区别的。 (4)定界符只能是半角字符,不能是全角字符。
4) 日期型常量 日期型常量的定界符是一对花括号{}。花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔。分隔符可是斜杠(/)、连字号(-)、句点(.)和空格,其中“/”是系统在显示日期型数据时使用的默认分隔符。 日期型常量的格式: ①传统的日期格式 系统默认的日期型数据为美国日期格式“mm/dd/yy”(月/日/年), 传统日期格式中的月、日各为2位数字,而年份可是2位也可是4位数字,如{10/08/06}、{10-08-06}、{10 .08 .2006} ②严格的日期格式:{^yyyy-mm—dd} 花括号内第一个字符必须是脱字符(^);年份必须用4位(如2001、1999等);年月日的次序不能颠倒、不能缺省。如{^2006-10-08}
③影响日期格式的设置命令 命令格式: set mark to [日期分隔符] 命令功能:用于设置显示日期型数据时使用的分隔符,如“-”、“.”等 • 命令格式:set date to 命令功能:设置日期显示的格式 • 命令格式:set century on /off 命令功能:用于设置显示日期型数据时是否显示世纪即是否用4位数字显示年份 • 命令格式:set strictdate to [0|1|2] 命令功能:用于设置是否对日期格式进行检查。0表示不进行严格的日期格式检查:1表示进行严格的日期格式检查,它是系统默认的设置;2表示进行严格的日期格式检查,并且对ctod()和ctot()函数的格式也有效。
5) 日期时间型常量 日期时间型常量包括日期和时间两部分内容: {<日期>,<时间>}。<日期>部分与日期型 常量相似,也有传统的和严格的两种格式。 <时间>部分的格式为:[hh[:mm[:ss]][a|p]].其中hh、mm和ss分别代表时、分和秒,默认值分别为12、0和0。AM和PM分别代表上午和下午,默认值为AM。如果指定的时间大于等于12,则自然为下午的时间。 【例3.1】设置不同的日期格式。 SET CENTURY ON &&设置4位数字年份 SET MARK TO &&恢复系统默认的斜杠日期分隔符 SET DATE TO YMD &&设置为“年/月/日”格式 ? {^2006-05-15,09:25:45a} 主窗口显示:2006/05/15 09:25:45 AM
6) 逻辑型常量 逻辑型数据只有逻辑真和逻辑假两个值. 逻辑真的常量表示形式有:.T. 、.t.、.Y.和.y. 逻辑假的常量表示形式有:.F.、.f.、.N.和.n. 注:前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。
3.1.3 变量 在命令执行过程中,其值可变化的量称为变量。变量值在使用过程中可改变. 确定一个变量,需要确定其3个要素:变量名、数据类型和变量值。 在VFP中变量分为系统变量、字段变量和内存变量。内存变量又可分为简单内存变量和数组变量。 字段变量:字段变量就是表中的字段名,其数据类型可以是VFP的任意数据类型,其值是表中对应的记录值。 内存变量:它是一种临时变量,是在程序执行过程中用于存放临时数据(中间结果或最终结果)的内存工作单元。 字段变量与数据库中的表有关,字段变量的值是当前所打开的表的当前记录的该字段的值。内存变量与数据库无关,是用来存放数据的内存区域。内存变量的数据类型由赋值给它的数据决定,是可以改变的。
1.变量命名约定 ● 使用字母,下划线,汉字和数字命名。一般建议内存变量不采用汉字命名; ● 命名以字母或下划线开头,不能以数字开头; ● 避免使用 VFP的保留字; 2.字段变量 与其他变量不同的是,字段变量是定义在表中的变量,随表的存取而存取,因而是永久性变量。字段名就是变量名;字段变量的数据类型为Visual FoxPro中13种数据类型中的任意数据类型,字段值就是变量值。不参与运算的数字定义为C。
3.内存变量 (1)内存变量的数据类型(6种) 内存变量的数据类型包括:数值型、字符型、货币型、逻辑型、日期型和日期时间型; (2)内存变量的赋值 命令格式1:STORE <表达式> TO <内存变量表> 功能:把一个相同的值同时赋值给多个内存变量。 命令格式2: <内存变量> = <表达式> 功能:计算<表达式>的值并赋值给指定一个内存变量。 注:内存变量的类型为最后赋值的值的类型。 内存变量的类型取决于变量值的类型变量的类型可以改变,可把不同类型的数据赋给同一个内存变量。
【例3.2】变量赋值。 在命令窗口输入命令: aa="abcdef" STORE "DFASDFAS“ TO aa STORE 1 TO s1,s2,s3 ? s1, s2, s3,aa 主窗口显示:1 1 1 DFASDFAS 用STORE和=都可以赋值,但是用STORE可以一次给多个内存变量赋值。在上面的例子中,aa、s1、s2、s3都是内存变量。aa的数据类型为字符型,而s1、s2、s3是数值型内存变量。
(3)内存变量值的输出 格式: ?| ?? <表达式表> [AT <列号>] ?:先回车换行,再计算并输出表达式的值; ??:在屏幕上当前位置,计算并直接输出表达式的值; <表达式表>:用逗号两两分隔的表达式,各表达式的值输出时,以空格分隔; AT <列号>子句指定表达式值从指定列开始显示输出。AT的定位只对它前面的一个表达式有效,多个表达式必须用多个AT子句分别定位输出。 (4)内存变量的显示(显示变量名,作用域,类型,值) 格式: list | display memory List memory 一次显示与通配符匹配的所有内存变量, display memory分屏显示与通配符匹配的所有内存变量,如内存变量多, 显示一屏后暂停,按任意键之后再继续显示下一屏。
(5). 内存变量的清除 格式1:clear memory 功能:清除所有内存变量 格式2: release <内存变量名表> 功能:清除指定的内存变量 格式3:release all[like<通配符>|except<通配符>] 功能:选用LIKE短语清除与通配符相配的内存变量,选用except短语清除与通配符不相匹配的内存变量。 VF中有两个通配符: ? 代表任意一个字符 * 代表任意个字符 格式4:clear all 功能:清除所有的内存变量,并关闭所有打开的库文件及相关文件,设置1区为当前工作区。
(6)内存变量的存储与恢复 由于内存变量是建立在内存中的,一旦退出VFP系统或关机,内存变量便消失了。为了保存内存变量,以备以后再使用,VFP系统提供了建立和恢复内存变量文件的命令。 ①建立内存变量文件 格式:SAVE TO <内存变量文件名>|TO MEMO<备注字段名> [ALL LIKE|EXCEPT <通配式>] 功能:将内存变量保存到内存变量文件或指定的备注字段中去。系统自动给内存变量文件加上扩展名.MEM。
②恢复内存变量文件 格式:RESTORE FROM 内存变量文件名|FROM MEMO 备注字段名 [ADDITIVE] 功能:从指定的内存变量文件或备注字段中,将保存的内存变量恢复到内存中来。若无ADDITIVE选项,则先清除当前内存中的全部内存变量后,再恢复;否则不清除,只将同名的内存变量覆盖。
数组变量被定义为一组变量的集合,它是具有相同名称而下标不同的一组有序内存变量,这些变量可以具有不同的数据类型。VFP允许定义一维和二维数组,在使用数组时应遵循先定义后使用的原则。数组变量被定义为一组变量的集合,它是具有相同名称而下标不同的一组有序内存变量,这些变量可以具有不同的数据类型。VFP允许定义一维和二维数组,在使用数组时应遵循先定义后使用的原则。 (1) 数组定义 格式:DIMENSION〖JB<1|〗DECLARE<数组名1>(<下标上界1> [,<下标上界2>]) [,<数组名2>(<下标上界3> [,<下标上界4>])…] 功能:定义一个或多个一维数组或二维数组。 说明: ①下标上界是一数量值,下标的下界由系统统一规定为1。 ②命令DIMENSION和DECLARE的功能完全相同。数组一旦定义,数组的每个元素的初值均为逻辑值.F.。 ③在定义数组时,数组名不能与同一环境下的简单变量同名。 4.数组变量
(2)数组元素的赋值与引用 • 数组下标应使用圆括号,二维数组的下标之间使用逗号隔开。 • 数组的下标可以是常量、变量和表达式,如A(1)、A(b1)、A(a+b)。 • 数组元素的类型为最近一次被赋值的类型。 • 每个数组元素可通过数组名及相应的下标来访问 例:DIMENSION x(5),y(2,3)命令定义了两个数组: • 一维数组x含5个元素:x(1)、x(2)、x(3)、x(4) 、x(5)。 • 二维数组y含6个元素:y(1,1),y(1,2),y(1,3),y(2,1),y(2,2),y(2,3) • y(1), y(2), y(3), y(4), y(5), y(6) • 在赋值语句中也可使用数组名将同一个值赋给数组的所有元素。 • 可用一维数组的形式访问二维数组。例如上面定义的数组y中的各元素用一维数组形式可依次表示为:y(1) y(2) y(3) y(4) y(5) y(6)。其中y(4)与y(2,1)引用的是同一变量。
【例3.3】定义数组、赋值并输出。 DIMENSION A(2), B(2,2),C(2) A(1)="ABCD" A(2)=.T. B(1,2)=A(1) B(2,2)=123 B(2,1)=11.1 C=2 ? A(1),A(2),B(1,2),B(2,2),C(1),C(2) 主窗口显示:ABCD .T. ABCD 123 2 2
5 系统变量 系统变量是由VFP系统自动生成的变量,它的名字是系统已定义好的,均以“_”(下划线)字符开头。例如_CLIPTEXT表示接受文本并送入剪贴板。 系统变量与一般变量有相同的使用方法。在定义内存变量名时,不要以“_”字符开头以避免重名。合理地运用系统变量,会给数据库系统的操作、管理带来许多方便。 在使用DISPLAY MEMORY命令显示内存变量时,可以看到这些系统变量的当前值。
3.2 运算符与表达式 运算符:是在VFP中用来进行运算的符号。 表达式:就是常量,变量和函数用运算符连接起来的式子,根据运算对象的数据类型不同,表达式可以分为算术表达式、字符表达式、日期和时间表达式、关系表达式和逻辑表达式。 常量、变量和函数本身可以就是一个表达式。
数值表达式由算术运算符与数值型常量、变量、函数构成,运算结果仍为数值型。又称数值表达式,其运算对象和运算结果均为数值型数据。数值运算符的功能及运算优先顺序,如下表所示: 数值表达式由算术运算符与数值型常量、变量、函数构成,运算结果仍为数值型。又称数值表达式,其运算对象和运算结果均为数值型数据。数值运算符的功能及运算优先顺序,如下表所示: 3.2.1 算术表达式
【例3. 4】 写出数学式 所对应的算术表达式 提示:在书写VFP表达式时,需将数学式子中的所有运算符和运算量改写为VPF所规定的运算符和运算量,并将所有的字符写在同一水平线上。同时为保证数学式子和VFP的表达式的一致性,需在必要时需加()。为此,该数学式子对应的VFP算术表达式为: g*m1*m2/(2+r**2) 或g*m1*m2/(2+r^2) 或 g*m1*m2/(2+r*r)
3.3.2 字符表达式 字符表达式由字符运算符与字符型常量、变量、函数构成,运算结果仍为字符型。VFP字符运算有两类:连接运算和包含运算。它们的优先级相同: 1)连接运算 连接运算符有完全连接运算符“+”和不完全连接运算符“-”2种。 +:前后两个字符串首尾连接形成一个新的字符串。 -:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。
字符串表达式 运算结果 "计算机"+"世界" 计算机世界 "I□have□a□□"+"Book" I□have□a□□Book "计算机□□"-"世界" 计算机世界□□ "I□have□□a□"-"Book" I□have□□aBook□ 【例3.5】字符连接运算示例。 注:表中“□”表示空格。
字符串表达式 运算结果 "计算机"$"计算机世界" .T. "TYPE" $ "I have a Book" .F. 2)包含运算 “$”是字符串的包含运算符,其运算的结果是逻辑值。如果字符串1包含在字符串2中,则运算结果为真(.T.),否则为假(.F.)。 【例3.6】 字符串包含运算示例。
日期和日期时间运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少天数,在日期时间数据上增加或减少秒数。两个运算的优先级别相同。日期和日期时间运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少天数,在日期时间数据上增加或减少秒数。两个运算的优先级别相同。 3.2.3 日期表达式和日期时间表达式 注意:日期型不能和日期型数据相加
【例3.7】日期和日期时间表达式运算示例。 d2=DATE()+2 d3=DATE()-2 ? d2-d3 主窗口显示:4
由关系运算符连接两个同类数据对象进行关系比较的运算式称为关系表达式。关系表达式的返回值为逻辑值,关系表达式成立则其值为“真”,否则为“假”。关系运算符具有相同的优先级。由关系运算符连接两个同类数据对象进行关系比较的运算式称为关系表达式。关系表达式的返回值为逻辑值,关系表达式成立则其值为“真”,否则为“假”。关系运算符具有相同的优先级。 3.2.4 关系表达式
注:运算符==(精确比较) 仅适用于字符型数据,其他运算符适用于任何类型的数据,但前后两个运算对象的数据类型要一致。 各种类型数据的比较规则如下: • 数值型和货币型数据根据其代数值的大小进行比较。 • 日期型和日期时间型数据进行比较时,离现在日期或时间越近的日期或时间越大。 • 逻辑型数据比较时,.T.比.F.大。
字符型数据(字符串)比较时,对于西文字符,按其ASCII码值的大小进行排列;对于汉字字符,在默认状态下,根据它们的拼音顺序比较大小。字符串比较时,先将2个字符串的第一个字符比较,若两者不等,其大小就决定了2个字符串的大小。若相等,则再将第2个字符比较,以次类推,直到最后,若每个字符都相等,则2个字符串相等。字符型数据(字符串)比较时,对于西文字符,按其ASCII码值的大小进行排列;对于汉字字符,在默认状态下,根据它们的拼音顺序比较大小。字符串比较时,先将2个字符串的第一个字符比较,若两者不等,其大小就决定了2个字符串的大小。若相等,则再将第2个字符比较,以次类推,直到最后,若每个字符都相等,则2个字符串相等。 • 当运算对象为字符型时,可用命令SET EXACT ON/OFF来设置“=”是否为精确比较。在非精确比较时,在关系表达式的格式中,只要后一个表达式是前一个表达式的前缀,其结果便为真。
【例3.8】关系运算示例。 SET EXACT OFF &&设置字符串为非精确比较 ?1244.33>22 && .T. ? aa>bb &&.T.或者.F.,取决于变量aa和bb的内容 ? "A" >"B“ &&.F. ? “助教”>“教授”&&.T. zc="教授□□" ? zc="教授", "教授"=zc, "教授"==LEFT(zc,4), zc=="教授" 主窗口显示:.T. .F. .T. .F. 注意:在非精确比较状态下,条件zc="教授"与条件"教授"= zc不等价。
由逻辑运算符将逻辑型数据对象连接而成的式子称为逻辑表达式。逻辑表达式的运算对象与运算结果均为逻辑型数据。逻辑运算符前后一般要加圆点“.”标记,以示区别,也可省略。由逻辑运算符将逻辑型数据对象连接而成的式子称为逻辑表达式。逻辑表达式的运算对象与运算结果均为逻辑型数据。逻辑运算符前后一般要加圆点“.”标记,以示区别,也可省略。 运算符 功能 优先级别 ( ) 圆括号 最高 | | 最低 .NOT.或! 逻辑非 .AND. 逻辑与 .OR. 逻辑或 3.2.5 逻辑表达式
逻辑运算真值表 A B A .AND.B A .OR. B .NOT.A .T. .T. .T. .T. .F. .T. .F. .F. .T. .F. .F. .T. .F. .T. .T. .F. .F. .F. .F. .T. 当一个表达式包含多种运算时,其运算的优先级由高到低排列为:算术运算→字符串运算→日期和时间运算→关系运算→逻辑运算。
【例3.9】逻辑运算示例。 x=8 y=15 ? x>5, y<10, x>5 OR y<10, x>5 AND〖KG*2〗y<10, NOT y<10 主窗口显示:.T. .F. .T. .F. .T.
3.3 Visual FoxPro 6.0常用函数 为了增强系统的功能和方便使用,VFP提供了许多函数,每个函数实现某个特定的功能或完成某种运算。函数就像命令一样,是系统内部“编制”好的一段程序,只要调用它,就能得到相应的函数结果。 函数具有特定的功能,分为系统函数和自定义函数两类。VFP提供了200多个函数。函数具有函数名、参数和函数值三个要素,有的函数缺省参数。在使用函数时要了解函数值的类型,免得发生数据类型不一致的错误。 函数调用的一般形式为:函数名( [参数表])
数值函数用于数值运算,其自变量与函数值都是数值型数据。数值函数用于数值运算,其自变量与函数值都是数值型数据。 1)取绝对值函数 格式:ABS(<数值表达式>) 功能:求数值型表达式的绝对值。 2)求符号函数 格式:SIGN(<数值表达式>) 功能:求指定数值表达式的符号。当表达式的运算结果为正、负和零时,函数值分别为1、-1和0。 3)求平方根函数 格式:SQRT(<数值表达式>) 功能:求数值型表达式的算术平方根,数值型表达式的值应不小于零。函数值为数值型。 3.3.1 数值处理函数
4)求指数函数 格式:EXP(<数值表达式>) 功能:将数值型表达式的值作为指数x,求出ex的值。 5)求对数函数 格式:LOG(<数值表达式>) LOG10(<数值表达式>) 功能:LOG求数值表达式的自然对数,LOG10求数值型表达式的常用对数,数值型表达式的值必须大于零。
6)取整函数 格式:INT(<数值表达式>) CEILING(<数值表达式>) FLOOR(<数值表达式>) 功能:INT取数值型表达式的整数部分。CEILING取大于或等于指定表达式值的最小整数。FLOOR取小于或等于指定表达式值的最大整数。 【例3.10】INT()、CEILING()、FLOOR()函数的使用。 x=56.72 ?INT(x),INT(-x),CEILING(x), CEILING(-x),FLOOR(x), FLOOR(-x) 输出的函数值依次为56,-56,57,-56,56,-57。
7)求余数函数 格式:MOD(<数值表达式1>,<数值表达式2>) 功能:求<数值表达式1>除以<数值表达式2>所得出的余数。余数的符号与表达式2相同。如果被除数与除数同号,那么函数值即为两数相除的余数;如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。 例如:函数MOD(25,7)的值为4, MOD(25,-7)的值为-3,MOD(-25,7)的值为3,MOD(-25,-7)的值为-4。
【例3.11】MOD()函数和INT()函数的使用。 x=521 x1=INT(x/100) && x的百位数字 x2=INT(MOD(x,100)/10) && x的十位数字 x3=MOD(x,10) && x的个位数字 ? x1+10*x2+100*x3 其输出结果为125 由此可见,利用MOD()函数和INT()函数可将3位整数x的百、十、个位数字分离出来。在许多数值问题处理中,均可利用这两个函数实现,如判断一个整数能否被另一个整数整除。
8)四舍五入函数 格式: ROUND(<数值表达式1>,<数值表达式2>) 功能:对<数值表达式1>的值按照<数值表达式2>指定的位置进行四舍五入。若<数值表达式2>的值n大于0,它表示的是要保留的小数位数为n,则对小数点后第n+1位小数进行四舍五入;若<数值表达式2>的值n小于0,它表示的是对<数值表达式1>之值的小数点前n位四舍五入。 【例3.12】ROUND()函数的使用。 x=234.628 ?ROUND(x,4-2),ROUND(x,1),ROUND(x,0),ROUND(x,-1),ROUND(123.4567,-2) 主窗口显示:234.63 234.6 235 230 100
9)求最大值和最小值函数。 格式:MAX(<表达式1>,<表达式2> [,<表达式3>…]) MIN(<表达式1>,<表达式2> [,<表达式3>…]) 功能:MAX()是计算各表达式的值,并返回其中的最大值;MIN()计算各表达式的值,并返回其中的最小值。表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须相同。 10)π函数 格式:PI() 功能:返回圆周率π的近似值3.14。
11)求磁盘自由空间函数 格式:DISKSPACE() 功能:求指定磁盘所剩余的可用空间的字节数。 12)求字段数函数 格式:FCOUNT(\[<数值型表达式>\]) 功能:求指定工作区表文件的字段数。若指定工作区无表文件打开,则返回0。若未指定<数值型表达式>,则对当前工作区操作。 【例3.13】 FCOUNT()函数的使用。 USE XSDA &&假定XSDA表有10个字段 ?FCOUNT() 主窗口显示:10