Page 12.1 数据类型、常量及变量 2.1.1 常用数据类型 1)字符型(C) 字符型(Character)数据是不能进行算术运算的文字数据类型,用字母C表示字 符型数据包括中文字符、英文字符、数字字符和其他ASCII字符,其长度(即字符个数 )范围是0~254个字符 2)数值型(N) 数值型数据是表示数量并可以进行算术运算的数据类型,用字母N表示数值型数 据由数字(0-9)、小数点(.)、正负号(+和-)组成 3)日期型(D) 日期型(Date)数据是表示日期的数据,用字母D表示日期的默认格式是 {mm/dd/yy},表示“月/日/年”,其中月份占2位,日号占2位,年份占4位,日期型数 据的长度固定为8字节其显示格式有多种,受系统日期格式设置(SET DATE)的影响 第第2 2章章 数据与数据运算数据与数据运算 Page 24)日期时间型(T) 日期时间型(Date Times)数据是表示日期和时 间的数据,用字母T表示日期时间的默认格 式是{mm/dd/yy hh:mm:ss},表示“月/日/年 小时:分钟:秒数”日期时间型数据也是 采用固定长度8字节。
5)逻辑型(L) 逻辑型(Logic)数据是描述客观事物真假的数 据类型,表示逻辑判断的结果,用字母L表示 逻辑型数据只有真(.t.或.y.)和假(.f. 或.n.)两种,固定长度1字节 6)备注型(M) 备注型(Memo)数据是表示、存放较多字符的数 据类型可以把它看成是字符型数据的特殊 形式,用字母M表示它没有数据长度限制, 仅受限于磁盘空间它只用于表中字段类型 的定义,字段长度固定为4字节,实际数据存 放在与表文件同名的备注文件(.FPT)中, 长度根据数据的内容而定 7)通用型(G) 通用型(General)数据是存储OLE(对象链接嵌 入)对象的数据类型,用字母G表示通用型 数据中的OLE对象可以是电子表格、文档、图 形、声音等它只用于表中字段类型的定义 通用型数据字段长度固定为4字节,实际数 据长度仅受限于磁盘空间Page 38)货币型(Y) 货币型(Currency)数据是为存储货币值而使用 的一种数据类型,用字母Y表示它默认保 留4位小数(多则四舍五入),占据8字节存储 空间 9)二进制字符型和二进制备注型 这两类数据是以二进制格式存储的数据类型,只 能用在表中字段数据的定义。
所存储的数据 不受代码页改变的影响Page 42.1.2 常量 1)数值型常量 数值型常量就是平时所讲的常数,如;123,-21,15.31,0.0001 也可用科学计数法形式书写,例如,用-1.23E2表示-1.23×102, 1E-4表示1×10-4 2)字符型常量 字符型常量又称为字符串是用定界符(可以是英文状态下的单 撇号””、双撇号””和方括号[])括起来的字符序列定界符必须 配对使用,如果一个定界符已经作为字符串中的字符,则应选择另一 种定界符例如“I’m a student.” 3)逻辑型常量 逻辑型常量只有逻辑真和逻辑假两种值在Visual FoxPro中,逻 辑真用.T.、.t.、.Y.或.y.表示,逻辑假用.F.、.f.、.N.或.n.表示 注意字母前后的圆点一定不能少 4)货币型常量 货币型常量以$符号开头,并四舍五入到小数4位例如货币型常 量$100.12345,计算结果为$100.1235货币型常量不能采用科学计 数法形式书写 Page 55)日期型常量 日期型常量是用一对花括号{}括起来的一个日期数据花括号内包括年、 月、日三部分内容,各部分内容之间用分隔符分隔。
分隔符可是斜杠 (/)、连字号(-)、句点(.)和空格,其中“/”是系统在显示日期型数 据时使用的默认分隔符 (1)日期型常量的格式 ①传统的日期格式 系统默认的日期型数据为美国日期格式“mm/dd/yy”(月/日/年), 传统日 期格式中的月、日各为2位数字,而年份可是2位也可是4位数字,如 {10/01/08}、{10-01-08}、{10 .01 .2008}这种格式设置受命令 SET DATE TO和SET CENTURY设置的影响也就是说,在不同设置状态 下,计算机会对同一日期常量作出不同的解释 ②严格的日期格式 格式为{^yyyy-mm—dd},花括号内第一个字符必须是字符(^);年份必须用 4位(如2008、1998等);年月日的次序不能颠倒、不能缺省如 {^2008-10-01}它不受命令SET DATE TO等语句设置的影响Page 6(2)影响日期格式的设置命令 ①设置日期分隔符 命令格式: SET MARK TO [日期分隔符] 功能:用于设置显示日期型数据时使用的分隔符,如“-”、“.”等如没 有指定任何分隔符,则恢复系统默认的斜杠分隔符 ②设置日期格式 命令格式:SET DATE [TO] AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA|MDY|DMY|YMD 功能:设置日期显示的格式。
③世纪显示开关设置 命令格式:SET CENTURY ON |OFF 功能:用于设置显示日期型数据时是否显示世纪即是否用4位数字显示年份 OFF(默认值)设置年份为2位数字表示 ④设置日期格式检查 命令格式:SET STRICTDATE TO [0|1|2] 功能:用于设置是否对日期格式进行检查其中,0表示不进行严格的日期格 式检测;1表示进行严格的日期格式检测(默认值);2表示进行严格的日期 格式检检测,并且对CTOD()和CTOT()函数的格式也有效 Page 76) 日期时间型常量日期时间型常量包括日期和时间两部分内容:{,}部分与日期型常量 相似,也有传统的和严格的两种格式部分的格式为:[hh[:mm[:ss]][a|p]].其中 hh、mm和ss分别代表时、分和秒,默认值分 别为12、0和0AM和PM分别代表上午和下午 ,默认值为AM如果指定的时间大于等于12 ,则自然为下午的时间例】设置不同的日期格式 SET CENTURY ON &&设置4位数字年份 SET MARK TO &&恢复系统默认的斜 杠日期分隔符 SET DATE TO YMD &&设置为“年/月/日” 格式 ? {^2008-08-08,08:00:00p} 主窗口显示:2008/08/08 08:00:00PM Page 82.1.3 变量 变量是在操作过程中可以改变其值的数据对象。
实际上它是用于 存放数据的存储单元一般说来变量分为字段变量和内存变量,字段 变量依赖表而存在,内存变量不依赖表而独立存在内存变量中包括 简单内存变量,数组内存变量和系统内存变量确定一个变量,需要 确定其3个要素:变量名、数据类型和变量值 1)变量命名规则 n 使用字母,下划线,汉字和数字命名一般建议内存变量不采用 汉字命名 n 命名以字母或下划线开头,不能以数字开头 n 避免使用Visual FoxPro的保留字 2)变量类型 (1)字段变量 字段变量就是表中的字段名表由若干记录构成,每个记录都包 含若干个数量相同的字段,同一字段在不同记录中分别对应不同的字 段值,因此,字段也是变量与其他变量不同的是,字段变量是定义 在表中的变量,随表的存取而存取,因而是永久性变量字段名就是 变量名;字段变量的数据类型为Visual FoxPro数据表中所支持的任 意数据类型,字段值就是变量值 Page 9(2)内存变量 内存变量是一种临时变量,是在系统运行过程中用于存放临时数 据(中间结果或最终结果)的内存工作单元内存变量的值由其存储 数据的值决定,内存变量的类型由赋值给它的数据类型决定。
内存 变量的数据类型主要包括:数值型、字符型、逻辑型、日期型和日 期时间型等 (3)数组内存变量 数组内存变量被定义为一组变量的集合,它是具有相同名称而下 标不同的一组有序内存变量,这些变量可以具有不同的数据类型 Visual FoxPro允许定义一维和二维数组,在使用数组时应遵循先定 义后使用的原则 (4)系统内存变量 系统内存变量是由Visual FoxPro自身提供的内存变量,系统变 量名均以“_”(下划线)字符开头例如可以用命令 _SCREEN.FONTSIZE=20来设置屏幕显示字体大小为20系统变量与一 般变量有相同的使用方法在定义内存变量名时,不要以“_”字开 头以避免重名合理地运用系统变量,会给数据库系统的操作、管 理带来许多方便 在使用DISPLAY MEMORY命令显示内存变量时, 可以看到这些系统变量的当前值 Page 103)内存变量的操作(1)内存变量的赋值命令格式1:STORE TO 功能:先计算表达式的值,同时赋值给多个内存变量命令格式2: = 功能:先计算表达式的值并赋值给指定一个内存变量说明:n “=”左边必须是一个变量n STORE命令中的可以包含多个变量,之间用“,” 分割。
n 内存变量的类型取决于表达式值的类型n 可直接使用内存变量名对内存变量进行访问,但在与字段变量 同名时,因字段变量优先,应该采用如下格式进行访问: M.内存 变量名或M->内存变量名 Page 11(2)内存变量值的输出 格式: ?|?? [AT ] 功能:计算表达式的值,并将其显示在屏幕上 说明: n?表示从屏幕当前行的下一行开始显示;??则表示从屏幕当前行开始显示 n表示可用逗号来隔开多个表达式,命令执行时遇到逗号就空一 格 (3)内存变量的显示 格式:LIST|DISPLAY MEMORY [LIKE ] [TO PRINTER | TO FILE ] 功能:显示当前已定义的内存变量的有关信息,包括变量名、作用域、类 型和取值等 说明: nList memory 一次显示与通配符匹配的所有内存变量,display memory分 屏显示与通配符匹配的所有内存变量,如内存变量多, 显示一屏后暂停,按 任意键之后再继续显示下一屏内存变量名可用通配符(*或?,分别代表任意 多个字符和单个字符)来表示,要用LIKE引导 n TO PRINTER能将屏幕显示内容输出到打印机;TO FILE 能将 显示内容存入文本文件中(扩展名为.TXT)。
Page 12(4)内存变量的清除 命令格式1:RELEASE 内存变量表 [ALL LIKE | EXCEPT ] 命令格式2:CLEAR ALL 命令格式3:CLEAR MEMORY 功能:将内存中的内存变量清除 说明:RELEASE ALL 和CLEAR MEMORY只清除内存中现有的内存变量,而CLEAR ALL 不仅清除所有的内存变量,而且还要关闭所有打开的数据表,设置1区为当前工作区 (5)内存变量的存储与恢复 由于内存变量是建立在内存中的,一旦退出VFP系统或关机,内存变量便消失了为 了保存内存变量,以备以后再使用,VFP系统提供了建立和恢复内存变量文件的命令 ①建立内存变量文件 格式:SAVE TO |TO MEMO [ALL LIKE|EXCEPT ] 功能:将内存变量保存到内存变量文件或指定的备注字段中去系统自动给内存变量 文件加上扩展名.MEM ②恢复内存变量文件 格式:RESTORE FROM 内存变量文件名|FROM MEMO 备注字段名 [ADDITIVE] 功能:从指定的内存变量文件或备注字段中,将保存的内存变量恢复到内存中来。
若 无ADDITIVE选项,则先清除当前内存中的全部内存变量后,再恢复;否则不清除,只将 同名的内存变量覆盖。