版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1数据类型在VisualFoxPro中,所有的数据都有类型,数据类型不同,意味着数据的取值范围、所占字节数、所能参与的运算也不相同。例如,数值型数据可以进行乘除运算,而字符型数据则不行;还有我们只能对同类型的数据进行操作,不同类型的数据进行操作则会出现语法错误。在VisualFoxPro中,数据类型有如下几类,这里将分别介绍。1.字符型(Character)这种数据是不具计算能力的文字数据类型,用字母C表示。它包括中文字符、英文字符、数字字符和其他ASCⅡ字符,其长度(即字符个数)范围是0~254个字符。下一页返回3.1数据类型2.数值型数值型数据是表示数量并可以进行数值运算的数据类型。数值型数据由数字、小数点、正负号和表示乘幂的字母E组成,数值精度达16位。在VisualFoxPro系统中,按存储、表示形式与取值范围不同,数值型数据又分为4种不同类型。(1)数值型。数值型(Numeric)数据由数字、小数点、正负号和字母E组成,用字母N表示。数值型数据的取值范围是:-0.9999999999E+19~0.9999999999E+20,包括正负号、小数点和字母E在内,其长度最大20位。通常用于表示实数,每个数据占8字节。上一页下一页返回3.1数据类型(2)浮点型。浮点型(Float)数据是数值型数据的一种,用字母F表示。它与数值型数据完全等价,只是在存储形式上用浮点格式,主要是为了得到较高的计算精度。(3)双精度型。双精度型(Double)数据是具有更高精度的一种数据型数据,用字母B表示。它采用固定长度浮点格式存储,占用8个字节。与数值型数据不同,双精度型数据的小数点的位置是由输入的数据值来决定的。(4)整型。整型(Integer)数据是不包含小数部分的数值型数据,用字母I表示。整型数据只用来表示整数,只能用于数据表中字段的定义,以二进制形式存储,占用4个字节。上一页下一页返回3.1数据类型3.日期型日期型(Date)数据是表示日期的数据,用字母D表示。日期的默认格式是{mm/dd/yyyy},其中mm表示月份,dd表示日期,yyyy表示年度,固定长度为8位。在本章后面会学习到,日期型数据的表示有多种格式,这里就不再赘述。4.日期时间型日期时间型(Datetime)类似于日期型,用字母T表示,格式为:{mm/dd/yyyyhh:mm:ss},其中hh:mm:ss的hh表示小时,mm表示分钟,ss表示秒。上一页下一页返回3.1数据类型5.逻辑型逻辑型(Logic)数据是描述客观事物真假的数据类型,表示逻辑判断的结果,用字母L表示。逻辑型数据只有真(.t.或.y.)和假(.f.或.n.)两种,固定长度1位。为区别其他数据类型,一般需在表示逻辑值的字母t、y、f、n的前后加圆点符“.”。6.备注型备注型(Memo)数据是表示和存放字符的数据类型。可以把它看成是字符型数据的特殊形式,用字母M表示。它没有长度限制,仅受限于磁盘空间。它只用于表中字段类型的定义,字段长度固定为4位,实际数据存放在与表文件同名的备注文件(.FPT)中,长度根据数据的内容而定。上一页下一页返回3.1数据类型7.通用型通用型(General)数据是存储OLE(对象链接嵌入)对象的数据类型,用字母G表示。通用型数据中的OLE对象可以是电子表格、文档、图片等。它只用于表中字段类型的定义。通用型数据字段长度固定为4位,实际数据存放长度仅受限于磁盘空间。OLE对象的实际内容、类型和数据量则取决于链接或嵌入OLE对象的操作方式。如果采用链接OLE对象的方式,则表中只包含对OLE对象的引用说明,以及对创建该OLE对象的应用程序的引用说明;如果采用嵌入OLE对象方式,则表中除包含对创建该OLE对象的应用程序的引用说明外,还包含OLE对象中的实际数据。注意:OLE只用于通用型而不用于备注型。上一页下一页返回3.1数据类型8.货币型货币型(Currency)数据是为了存储美元金额而使用的一种称为货币的数据类型。默认保留四位小数,占据8个字节存储空间,当小数部分超过4位时,系统进行四舍五入处理。货币型数据用字母Y表示。9.二进制字符型和二进制备注型这两种数据是以二进制格式存储的数据类型,只能用在表中字段数据的定义。所存储的数据不受代码页改变的影响。以上数据类型均可应用于表中字段数据类型的定义,但其中双精度型、浮点型、通用型、整型、备注型、二进制字符型和二进制备注型,只能应用于字段,其余则可以用于变量、数组和字段。上一页返回3.2常量和变量3.2.1常量3.1节中讲解了VisualFoxPro中的数据类型,在VisualFoxPro系统中,数据可用常量、变量、数组表示,数据还可以用于字段、记录和对象中,由它们存储、容纳各种类型的数据。因此,常把这些供数据存储的常量、变量、数组、字段、记录和对象等称为数据存储容器。用户正是利用不同的数据存储容器,在VisualFoxPro系统中表示、存储、操作、处理各种类型的数据,实现数据处理的应用。常量是在命令或程序中可直接引用、具有具体值的命名数据项,其特征是在整个操作过程中,它的值和表现形式保持不变。VisualFoxPro按常量取值的数据类型不同,将常量分为6种类型,下面分别介绍。下一页返回3.2常量和变量1.数值型常量由数字、小数点和正负号组成,表示整数或实数值,如100、-21、15.31等分别是数值型常量中的整数和实数。2.浮点型常量以浮点格式表示的数值常量。通常用来表示那些绝对值很大或很小、而有效位数不太长的一些数值,对应于日常应用中的科学记数法,如用3.14E12表示3.14×1012。上一页下一页返回3.2常量和变量3.字符型常量由任意ASCII字符、汉字和汉字字符组成的字符型数据,字符型常量又称为字符串。为与其他类型常量、变量和标识符相区别,VisualFoxPro要求将字符串中的所有字符用双引号“"”或单引号“′”或方括号“[]”作为定界符括起来。例如,以下都是合法的字符串:"Iamastudent."、′我是中国人′、[我是中国人]注意:双引号、单引号和方括号作为普通字符也可以出现在字符串中,但不再起定界符作用,该字符串必须以另外的定界符括起来。例如:[中国说:"欢迎来到北京做客!"]字符串中双引号此时仅是普通字符,而该串的定界符是方括号[]。定界符必须成对匹配、前后一致。上一页下一页返回3.2常量和变量4.逻辑型常量逻辑型常量就是表示逻辑判断结果“真”或“假”的逻辑值。逻辑常量只有真和假两种值,分别用(.t.或.y.)和(.f.或.n.)表示真和假。一般应在表示逻辑常量的字母左右加圆点符“.”以示区别于变量名。5.日期型常量日期型常量是表示日期值的数据,其默认格式是{mm/dd/[yy]yy}(方括号括起的部分可以省略),如{10/01/02}和{10/01/2002}均表示2002年10月1日这一日期常量值。日期型常量的定界符是一对花括号,花括号内包括年、月、日三部分内容,各部分内容由分隔符分开,分隔符可以为斜杠(/),连字号(-),句点(.)和空格,其中斜杠是系统在显示日期型数据时的默认分隔符。分隔符的转换使用以下命令。上一页下一页返回3.2常量和变量命令格式:SETMARKTO[日期分隔符]功能:用于设置显示日期型数据时使用的分隔符,如果命令没有指定任何分隔符,表示恢复系统默认的斜杠分隔符。除了默认格式,日期型常量还有其他的显示格式,日期格式的转换使用以下命令:命令格式:SETDATETOAMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA|MDY|DMY|YMD功能:用于设置显示日期型数据时使用的格式,命令中各个短语所定义的日期格式如表3-1所示。上一页下一页返回3.2常量和变量日期型常量的格式有两种:传统的日期格式和严格的日期格式,传统的日期格式就是以上介绍的格式,严格的日期格式是{^yyyy-mm-dd},定界符是一对花括号,花括号内包括脱字符(^)、年、月、日四部分内容,年份必须是4位,年、月、日的顺序不能颠倒和省略。6.日期时间型常量VisualFoxPro系统中增加了一种表示日期和时间值的日期时间常量,其默认格式为{mm/dd/[yy]yy[,]hh:mm:ss[a|p]}。其中a和p分别表示AM(上午)和PM(下午)。通常日期格式中用2位数表示年份,但涉及世纪问题就不便区分。VisualFoxPro提供设置命令对此进行相应设置。上一页下一页返回3.2常量和变量命令格式:SETCENTURYON|OFF功能:ON:日期数据显示10位,其中年份4位,即日期值输出时显示年份值。OFF:默认值。日期数据显示8位,其中年份2位,即日期输出时不显示年份值。日期值和日期时间值的输入格式与输出格式并不完全相同,特别是输出格式受系统环境设置的影响,用户可根据应用需要进行相应的调整和设置,这里就不过多介绍了。上一页下一页返回3.2常量和变量3.2.2变量变量是在操作过程中可以改变其取值或数据类型的数据项。在VisualFoxPro系统中变量分为内存变量、数组变量、字段变量和系统变量4类。此外,作为面向对象的程序语言,VisualFoxPro在进行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变量。确定一个变量,需要确定其三个要素:变量名、数据类型和变量值。上一页下一页返回3.2常量和变量1.命名约定在VisualFoxPro系统中,将表示、存储数据的常量、变量、数组、字段、记录、对象、表、数据库等,都称为数据容器。所有数据容器均需命名以相互区别,为规范各类对象的命名,VisualFoxPro系统推荐了若干“命名约定”供用户参考,以提高操作命令与程序的可读性和规范性。具体命名约定如下:(1)使用字母,下划线和数字命名。一般建议不采用汉字命名;(2)命名以字母或下划线开头;除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1~128个字符;(3)避免使用VisualFoxPro的保留字;(4)文件名的命名应遵循操作系统的约定。上一页下一页返回3.2常量和变量2.内存变量内存变量是在内存中定义的、一种单个数据元素的临时性变量。(1)内存变量的数据类型。包括:数值型、字符型、逻辑型、日期型和日期时间型;(2)内存变量的建立。建立内存变量就是给内存变量赋值。内存变量赋值既可定义一个新的内存变量,也可以改变已存在内存变量的值或数据类型,赋值格式有如下两种:命令格式一:STORE<表达式>TO<内存变量表>功能:计算<表达式>的值并赋值给一个或多个内存变量。命令格式二:<内存变量>=<表达式>功能:计算<表达式>的值并赋值给指定的一个内存变量。上一页下一页返回3.2常量和变量(3)内存变量的显示输出。可以用两个命令在屏幕上显示输出内存变量的值。命令格式:?|??<表达式表>[AT<列号>]功能:计算表达式表中各表达式的值,并在屏幕上指定位置显示输出各式的值。其中,?:先回车换行,再输出表达式的值;??:在屏幕上当前位置,直接输出表达式的值;<表达式表>:由多个逗号两两分隔的表达式,各表达式的值输出时,以空格分隔;上一页下一页返回3.2常量和变量AT<列号>子句指定表达式值从指定列开始显示输出。AT的定位只对它前面的一个表达式有效,多个表达式必须用多个AT子句分别定位输出,而且可反序定位。3.数组变量数组变量是结构化的变量,是一组具有相同名称、以下标相互区分的有序内存变量。一个数组通常都包含多个数据元素。VisualFoxPro系统中只允许使用一维数组(相当于数列)和二维数组(相当于行列式或矩阵)。(1)数组元素。上一页下一页返回3.2常量和变量①数组中各有序变量(数据元素)即组成数组的成员,称为数组元素。数组元素实质上是一个内存变量,也称数组变量,它们具有相同变量名即数组名,彼此以下标区分。②数组元素的名称(变量名)用数组名加下标构成,如AA(1),BB(2,3)分别表示一维数组AA的第1个元素,二维数组BB中第2行第3列的元素。③下标必须用圆括号括起,一维数组的元素只有一个下标,二维数组的元素有两个以逗号分隔的下标。④下标必须是非负数值,可以是常量、变量、函数或表达式,下标值会自动取整,如AA(1.5),AA(nA1),AA(2+10/3)等。上一页下一页返回3.2常量和变量⑤数组元素的数据类型决定于最后赋值的数据类型;不同数组元素的数据类型可以不同。⑥数组元素与普通内存变量一样操作,可以赋值和引用。(2)数组的定义。数组必须先定义后使用,定义数组是向系统申请数组元素在内存中的存储空间。命令格式:DIMENSION|DECLARE<数组名1>(<数值表达式1>[,<数值表达式2>])[,<数组名2>(<数值表达式3>[,<数值表达式4>])…]上一页下一页返回3.2常量和变量功能:定义指定的各个数组,规定数组是一维的还是二维的,数组名和数组大小,数组大小由下标值的上下限决定,下标的起始值是1,例如dimensiona(3),b(2,2)定义了两个数组,一维数组a有3个元素,分别为:a(1),a(2),a(3),二维数组b有4个元素分别为:b(1,1),b(1,2),b(2,1),b(2,2)。可以用一维数组的形式访问二维数组,例如数组b中的各元素用一维数组形式可依次表示为:b(1),b(2),b(3),b(4),其中b(3)与b(2,1)是同一变量。数组创建后,系统自动给每个数组元素赋值逻辑假.F.。(3)数组的赋值与引用。数组元素的赋值与引用与普通内存变量的规则相同。上一页下一页返回3.2常量和变量注意:在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组全部数组元素,另外在赋值语句的表达式位置不能出现数组名。4.字段变量表由若干记录构成,每个记录都包含若干个数量相同的字段,同一字段在不同记录中分别对应不同的字段值,因此,字段也是变量。与其他变量不同的是,字段变量是定义在表中的变量,随表的存取而存取,因而是永久性变量。字段名就是变量名;变量的数据类型为VisualFoxPro中任意数据类型,字段值就是变量值。注意:如果存在同名的字段变量和内存变量,则在访问内存变量时必须在变量名前加上前缀m.或m->,否则系统将访问同名的字段变量。上一页下一页返回3.2常量和变量5.系统变量系统变量是VisualFoxPro系统特有的内存变量,它由VisualFoxPro系统定义、维护。系统变量有很多,其变量名均以“_”下划线开始,因此在定义内存变量和数组变量名时,不要以下划线开始,以免与系统变量名冲突。系统变量设置、保存了很多系统的状态、特性,了解、熟悉并且充分地运用系统变量,会给数据库系统的操作、管理带来很多方便,特别是开发应用程序时更为突出,学习时可对此有所关注。上一页返回3.3表达式与运算符在VisualFoxPro系统中,表达式是由常量、变量、函数及其他数据容器单独或与运算符组成的有意义的运算式子。运算符是对数据对象进行加工处理的符号,根据其处理数据对象的数据类型,运算符分为算术(数值)运算符、字符运算符、日期时间运算符、逻辑运算符和关系运算符五类。相应地,表达式也分为算术表达式、字符表达式、日期时间表达式、逻辑表达式和关系表达式五类。常量、变量和函数可以作为表达式的特例。此后涉及表达式的描述,除特别指明,均可包含这些特殊的形式。下一页返回3.3表达式与运算符在一个表达式中可能包含多个由不同运算符连接起来的、具有不同数据类型的数据对象,但任何运算符两侧的数据对象必须具有相同数据类型,否则运算将会出错;由于表达式中有多种运算,不同的运算顺序可能得出不同结果,甚至出现运算错误,因此当表达式中包含多种运算时,必须按一定顺序施行相应运算,才能保证运算的合理性和结果的正确性、唯一性。用户也可以通过给表达式加圆括号的方式,改变其默认运算顺序。在VisualFoxPro系统中,各类运算的优先顺序为圆括号>算术运算,字符串运算和日期时间运算>关系运算>逻辑运算同一类运算符也有一定的运算优先顺序,这在各类表达式中分别介绍。如果多个同一级别的运算,则按其在表达式中出现的先后顺序进行运算。上一页下一页返回3.3表达式与运算符3.3.1算术表达式算术表达式又称数值表达式,其运算对象和运算结果均为数值型数据。数值运算符的功能及运算优先顺序,如表3-2所示。表中运算符按运算优先级别从高到低顺序排列。3.3.2字符表达式字符表达式是由字符运算符将字符型数据对象连接起来进行运算的式子。字符运算的对象是字符型数据对象,运算结果是字符常量或逻辑常量。表3-3所示为字符运算符的功能。上一页下一页返回3.3表达式与运算符“+”与“-”都是字符连接运算符,都将两字符串顺序连接,但“+”是直接连接,“-”则将串1尾部所有空格移到串2尾部后再连接;“$”运算实质上是比较两个串的包含关系,因此有些书籍中将其归于关系运算,其作用是比较、判断串1是否为串2的子串,如果串1是串2的子串,运算结果为“真”,否则为“假”。所谓子串,是指如果串1中所有字符均包含在串2中且与串1中排列方式与顺序完全一致,则称串1为串2的子串。“+”“-”两个连接运算的优先级别相同,但高于“$”的比较运算。上一页下一页返回3.3表达式与运算符3.3.3日期时间表达式由日期运算符将一个日期型或日期时间型数据与一个数值型数据连接而成的运算式称为日期表达式。日期运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少一个天数,在日期时间数据上增加或减少一个秒数,格式如表3-4所示。上一页下一页返回3.3表达式与运算符3.3.4关系表达式由关系运算符连接两个同类数据对象进行关系比较的运算式称为关系表达式。关系表达式的值为逻辑值,关系表达式成立则其值为“真”,否则为“假”。表3-5所示为关系运算符的功能。表3-5中的关系运算符的优先级别相同关系表达式运算时,就是比较同类型的两数据对象的“大小”,对于不同类型的数据,其“大小”或者是值的大小,或者是先后顺序。数值型数据按数值的大小为序,日期或日期时间数据以日期或时间的先后顺序为序。在VisualFoxPro系统中,字符型数据的比较相对复杂,默认规则如下所述。上一页下一页返回3.3表达式与运算符1.单个字符单个字符的比较是以字符ASCII码的大小,作为字符的“大小”,也就是先后顺序,空格在最前,然后是空格,接下来是大写字母,最后是小写字母。2.字符串两个字符串进行比较的基本原则是从左到右逐个字符进行比较,但因系统相关设置状态不同,比较的结果与预期的不完全相同。(1)相等比较:用运算符=进行两串比较时,或者到达右端串的末尾字符为止(当SETEXACTOFF时),或者当到达两串的末端为止(当SETEXACTON时),先在较短字符串的尾部加上若干个空格,使两个字符串长度相等,再进行比较。上一页下一页返回3.3表达式与运算符(2)恒同比较:用运算符==进行两串的恒同比较时,不论SETEXACT的设置如何,只有当两串长度相同,字符相同,排列一致时才成立。(3)大小比较:用运算符<或>进行两串比较时,比较到第1个不相同字符为止,否则,长度较长的串较“大”。(4)其他比较:除上述运算符之外的其他运算符<>、<=和>=的比较,均可看作是两个运算符以逻辑“或”的关系构成的复合运算。上一页下一页返回3.3表达式与运算符3.汉字系统默认按汉字的拼音排列汉字的顺序,也就是以汉字的拼音顺序比较“大小”,因此,汉字比较实质上是以字母的顺序进行比较;但VisualFoxPro系统可以设置汉字按笔画排列顺序,因而,汉字的“大小”就决定于其笔画数的多少。用菜单设置汉字排列顺序方式的操作步骤为:单击“工具”菜单的“选项”命令,在打开的“选项”对话框中选择“数据”选项卡的“排序序列”下拉列表框,然后选择“Stroke”项并确定,系统将按汉字的笔画数进行汉字的排序、比较运算。另外选择“Pinyin”项并确定,系统将按照拼音次序比较,对于西文字符而言,是按照ASCII码值排列的。上一页下一页返回3.3表达式与运算符选择“Machine”项并确定,系统将按照机内码顺序排列,对于西文字符而言,空格在最前,大写的ABCD字母序列在前,小写的abcd字母序列在后,对于汉字,按照拼音顺序决定大小。3.3.5逻辑表达式由逻辑运算将逻辑型数据对象连接而成的式子称为逻辑表达式。逻辑表达式的运算对象与运算结果均为逻辑型数据。表3-6所示为逻辑运算符的功能。逻辑运算符前后一般要加圆点“.”标记,以示区别。上一页下一页返回3.3表达式与运算符对于各种逻辑运算,其运算规则可由逻辑运算真值表确定,表3-7所示就是逻辑运算真值表。在VisualFoxPro系统中,经常需要与一种特殊的“数据”空值NULL(或.NULL.)打交道。空值对于逻辑运算的影响如表3-8所示。上一页返回3.4函数VisualFoxPro系统中,函数是一段程序代码,用来进行一些特定的运算或操作,支持和完善命令的功能,帮助用户完成各种操作与管理。VisualFoxPro系统有数百种不同函数,按函数提供方式可分为系统(标准)函数和用户自定义函数;按函数运算、处理对象和结果的数据类型可分为数值型函数、字符型函数、逻辑型函数、日期时间型函数、数据转换函数等;按函数的功能和特点可分为数据处理函数、数据库操作函数、文件管理函数、键盘和鼠标处理函数、输出函数、窗口界面操作函数、程序设计函数、数据库环境函数、网络操作函数、系统信息函数、动态数据操作函数等。下一页返回3.4函数VisualFoxPro的函数由函数名与自变量两部分组成。标准函数是VisualFoxPro系统提供的系统函数,其函数名是VisualFoxPro保留字,自定义函数是用户自定义的函数,函数名用户指定;自变量必须用圆括号括起来,如有多个自变量,各自变量以逗号分隔;有些函数可省略自变量,或不需自变量,但也必须保留括号;自变量数据类型由函数的定义确定,数据形式可以是常量、变量、函数或表达式等。函数是一类数据项,除个别(如宏替换)函数外,函数都不能像命令一样单独使用,只能作为命令的一部分进行操作运算,本节介绍多个常用函数,供学习和查阅。上一页下一页返回3.4函数3.4.1数值函数数值函数用于数值运算,其自变量与函数返回值都是数值型数据,函数中涉及的数值型数据项与数值型表达式,均以nExp表示。参数列表中用[]括起来的参数表示可以省略。1.取绝对值函数ABS()格式:ABS(<nExp>)功能:计算表达式nExp的值,并返回该值的绝对值。2.符号函数SIGN()格式:SIGN(<nExp>)功能:计算表达式nExp的符号,当nExp的运算结果为正数,负数和零时,函数的值分别为1,-1和0。上一页下一页返回3.4函数3.取整函数INT()格式:INT(<nExp>)功能:计算表达式nExp的值,返回该值的整数部分。4.上界函数CEILING()格式:CEILING(<nExp>)功能:计算表达式nExp的值,返回一个大于或等于该值的最小整数。5.下界函数FLOOR()格式:FLOOR(<nExp>)功能:计算表达式nExp的值,返回一个小于或等于该值的最大整数。上一页下一页返回3.4函数6.平方根函数SQRT()格式:SQRT(<nExp>)功能:求非负表达式nExp的平方根,它与开二分之一次方等同。7.最大值函数MAX()和最小值函数MIN()格式:MAX(<nExp1>,<nExp2>[,<nExp3>...])MIN(<nExp1>,<nExp2>[,<nExp3>.])功能:计算nExp1,nExp2,nExp3,…的值,并返回它们中的最大值MAX()和最小值MIN()。上一页下一页返回3.4函数字符串比较的规律:字符串比较首先比较第一个字母,如果有结果那就不用再进行比较了。如果相等,再进行第二个字母的比较,依次类推。8.求余数函数MOD()格式:MOD(<nExp1>,<nExp2>)功能:返回nExp1除以nExp2的余数。余数的小数位数与nExp1相同,符号与nExp2相同。如果nExp1和nExp2同号,则函数值即为两数相除的余数,如果nExp1和nExp2异号,则函数值即为两数相除的余数再加上nExp2的值。上一页下一页返回3.4函数9.四舍五入函数ROUND()格式:ROUND(<nExp1>,<nExp2>)功能:返回nExp1四舍五入的值,若nExp2>0,它表示保留的小数位数,若nExp2<0,它表示的是整数部分的舍入位数。10.π函数PI()格式:PI()功能:返回常量π的近似值3.14。上一页下一页返回3.4函数3.4.2字符函数字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数中涉及的字符型数据项与字符型表达式均以cExp表示。1.子串位置函数AT()|ATC()格式:AT(<cExp1>,<cExp2>[,nExp])|ATC(<cExp1>,<cExp2>[,nExp])上一页下一页返回3.4函数功能:返回串cExp1在串cExp2中的起始位置。函数值为整数。如果串cExp2不包含串cExp1,函数返回值为零,第三个自变量nExp用于表明要在cExp2值中搜索cExp1值的第几次出现,该值可省略,其默认值是1。ATC()与AT()的功能类似,但比较时不区分大小写。2.取左子串函数LEFT()格式:LEFT(<cExp>,<nExp>)功能:返回从cExp串中左边第一个字符开始,向右截取nExp个字符的子串。上一页下一页返回3.4函数3.取右子串函数RIGHT()格式:RIGHT(<cExp>,<nExp>)功能:返回从cExp串中右边第一个字符开始,向左截取nExp个字符的子串。4.取子串函数SUBSTR()格式:SUBSTR(<cExp>,<nExp1>[,<nExp2>])功能:返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。其中如果nExp2省略,则函数从指定位置一直取到最后一个字符。上一页下一页返回3.4函数5.字符串长度函数LEN()格式:LEN(<cExp>)功能:返回cExp串的字符数(长度),注意一个汉字占两个长度。函数值为N型。6.删除字符串前导或尾部空格函数LTRIM()|TRIM()格式:LTRIM|TRIM(<cExp>)功能:LTRIM()删除cExp串的前导空格字符后形成新字符串,TRIM()删除cExp串的尾部空格字符后形成新的字符串。上一页下一页返回3.4函数7.删除字符串前导和尾部空格函数ALLTRIM()格式:ALLTRIM(<cExp>)功能:删除cExp串前导和尾部空格后形成新的字符串。8.空格函数SPACE()格式:SPACE(<nExp>)功能:返回一个包含nExp个空格的字符串。上一页下一页返回3.4函数9.字符串匹配函数LIKE()格式:LIKE(<cExp1>,<cExp2>)功能:比较两个字符串对应位置上的字符,若所有对应字符相匹配,函数返回逻辑真(.T.),否则返回逻辑假(.F.)cExp1中可以包含通配符和?。可与任何数目的字符相匹配,?可以与任何单个字符相匹配。10.大小写转换函数LOWER()和UPPER()格式:LOWER(<cExp>)UPPER(<cExp>)功能:LOWER()将cExp串中字母全部变成小写字母,其他字符不变,UPPER()将cExp串中字母全部变成大写字母,其他字符不变。上一页下一页返回3.4函数11.宏替换函数&格式:&<cVar>[.<cExp>]功能:替换出字符型变量cVar的内容,即&的值是变量中的字符串去掉定界符。如果该函数与后边的字符没有明显的分界,则要用“.”作为函数结束标识。3.4.3日期时间函数日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日期时间型表达式tExp。上一页下一页返回3.4函数1.系统日期函数DATE()格式:DATE()功能:返回当前系统日期,此日期由Windows系统设置,函数值为D型。2.系统时间函数TIME()格式:TIME()功能:返回当前系统时间,函数值为C型。3.系统日期和时间函数DATETIME()格式:DATETIME()功能:返回当前系统日期时间,函数值为T型。上一页下一页返回3.4函数4.日期函数DAY()格式:DAY(<dExp>|<tExp>)功能:返回dExp|tExp式中的天数,函数值为N型5.星期函数DOW()、CDOW()格式:DOW(<dExp>|<tExp>)CDOW(<dExp>|<tExp>)功能:DOW()函数返回dExp|tExp式中星期的数值,用1~7表示星期日~星期六。函数值为N型。CDOW()函数返回dExp|tExp式中星期的英文名称,函数值为C型。上一页下一页返回3.4函数6.月份函数MONTH()、CMONTH()格式:MONTH(<dExp>|<tExp>)CMONTH(<dExp>|<tExp>)功能:MONTH()函数返回dExp|tExp式中月份数,函数值为N型。CMONTH()函数则返回月份的英文名,函数值为C型。7.年份函数YEAR()格式:YEAR(<dExp>|<tExp>)功能:函数返回dExp|tExp式中年份值,函数值为N型。上一页下一页返回3.4函数8.小时函数HOUR()格式:HOUR(<tExp>)功能:函数返回tExp式小时部分,函数值为N型。9.分钟函数MINUTE()格式:MINUTE(<tExp>)功能:函数返回tExp式中分钟部分,函数值为N型。10.秒函数SEC()格式:SEC(<tExp>)功能:函数返回tExp式中秒部分,函数值为N型。上一页下一页返回3.4函数3.4.4转换函数在数据库应用的过程中,经常要将不同数据类型的数据进行相应转换,满足实际应用的需要。VisualFoxPro系统提供了若干个转换函数,较好地解决了数据类型转换的问题。1.ASCII码函数ASC()格式:ASC(<cExp>)功能:返回cExp串首字符的ASCII码值,函数值为N型。上一页下一页返回3.4函数2.字符日期型转换函数CTOD()|CTOT()格式:CTOD(<cExp>)CTOT(<cExp>)功能:CTOD()把cExp串转换成对应日期值,CTOT()把cExp串转换成对应日期时间值。字符串的日期部分格式要与SETDATETO命令设置的格式一致。年份可以用四位,也可以用两位,如果用四位,则前两位由SETCENTURYTO语句指定。上一页下一页返回3.4函数3.日期字符型转换函数DTOC()|TTOC()格式:DTOC(<dExp>|<tExp>[,1])TTOC(<tExp>[,1])功能:DTOC()将日期型数据或日期时间数据的日期部分转化成字符串TTOC()将日期时间数据转化成字符串字符串的日期部分格式受SETDATETO命令和SETCENTURYON/OFF影响,时间部分的格式受SETHOURSTO12/24影响。对DTOC()来说,如果使用选项是1,则字符串的格式总是YYYYMMDD,8个字符。对TTOC()来说,如果使用选项1,则字符串格式总是YYYYMMDDHHMMSS,采用24小时制,14个字符。上一页下一页返回3.4函数4.数值字符型转换函数STR()格式STR(<nExp1>[,<nExp2>][,<nExp3>])功能:将nExp1的数值转换成字符串形式,nExp2表示转换后的长度,默认值为10,nExp3表示转换后的小数位数,默认值为0,函数值为C型。转换时,根据需要进行四舍五入。返回字符串的理想长度应该是nExp1的整数位数部分加上nExp3,再加上一位小数点。如果nExp2大于理想长度,则转换后的字符串前面加空格达到nExp2指定长度,如果nExp2大于或等于nExp1的整数位数部分(包括负号)但是又小于理想长度,则优先满足整数部分,自动调整小数位数,如果nExp2小于nExp1的整数位数部分(包括负号),则返回一串。上一页下一页返回3.4函数5.字符数值型转换函数VAL()格式:VAL(<cExp>)功能:将cExp串中数字转换成对应数值,转换结果取两位小数,函数值为N型。若cExp串中出现非数字字符,那么只转换前面部分,若字符串的首字符不是数字符号,则返回数值0,前导空格忽略不计。3.4.5测试函数在数据库应用的操作过程中,用户需要了解数据对象的类型、状态等属性,VisualFoxPro提供了相关的测试函数,使用户能够准确地获取操作对象的相关属性。上一页下一页返回3.4函数1.数据类型函数VARTYPE()格式:VARTYPE(<Exp>)功能:返回Exp表示的数据对象的数据类型,返回值是一个表示数据类型的大写字母。C:字符型或备注型,D:日期型,T:日期时间型,N:数值型,Y:货币型,L:逻辑型,O:对象形,G:通用型,X:NULL值,U:未定义。若Exp是一个数组,则根据第一个数组元素的类型返回字符。上一页下一页返回3.4函数2.文件查找函数FILE()格式:FILE(<cExp>)功能:根据cExp串中指定路径查找文件,如未指定路径,则在默认目录中查找。文件存在,返回逻辑真值(.T.),否则为逻辑假值(.F.)。3.条件测试函数IIF()格式:IIF(<lExp>,<eExp1>,<eExp2>)功能:逻辑表达式lExp值为真(.T.),返回表达式eExp1的值;否则返回表达式eExp2的值。eExp1和eExp2可以是任意数据类型的表达式。上一页下一页返回3.4函数4.表文件尾测试函数EOF()系统对表中的记录是逐条进行处理的,对于一个打开的表文件来说,在某一时刻只能处理一条记录。VisualFoxPro为每一个打开的表设置一个内部使用的记录指针,指向正在被操作的记录,该记录被称为当前记录。记录指针的作用是标识表的当前记录。表文件的逻辑记录结构如图3-1所示。最上面的记录是首记录,记为TOP,最下面的记录是尾记录,记为BOTTOM。在第一个记录之前有一个文件起始标识,称为BeginningofFile(BOF),在最后一个记录的后面有一个文件结束标识,称为EndofFile(EOF),使用测试函数能够得到指针的位置,刚刚打开表时,记录指针总是指向首记录。上一页下一页返回3.4函数格式:EOF([<工作区号>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年用电作业安全测试题及答案
- 2026年音乐教案期中测试题及答案
- 2026年测试闺蜜的测试题目及答案
- 2026年我爱你 汉字测试题及答案
- 2026年市场营销故事测试题及答案
- 2026年新党章网上测试题及答案
- 2026年幼儿智能测试题及答案
- 2026年卖场陈列测试题及答案
- 高血压护理查房要点
- 2028年水利工程监理检测标准合同二篇
- 2026山东鲁泰控股集团有限公司社会招聘38人笔试备考试题及答案详解
- 2026四川省注册会计师协会招聘4人备考题库及一套参考答案详解
- 2026年辽宁锦州海通实业有限公司计划招录28人笔试模拟试题及答案详解
- 2026年度湖北省部分工程高、中级职称水平能力测试(电气)综合练习题及答案
- Q∕320612 QJH001-2023 QJH热固复合聚苯乙烯泡沫保温板外墙外保温系统应用技术规程
- 2026年中国文联所属事业单位招聘(19人)考试参考试题及答案解析
- 2026年高职老年人能力评估师(评估实操)试题及答案
- 口服抗栓药物相关消化道损伤防治专家共识解读总结2026
- 2026年上海市黄浦区初三下学期三模数学试卷和答案
- 人教版小升初语文试卷及答案【完整】
- DB11-T 383-2023 建筑工程施工现场安全资料管理规程
评论
0/150
提交评论