版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章Visual FoxPro基本操作基本操作及其预备知识及其预备知识3.1Visual FoxPro工作方式工作方式3.2数据类型数据类型3.3数据存储数据存储3.4函数函数3.5表达式表达式习题习题 Visual FoxPro数据库管理系统是进行数据处理的强数据库管理系统是进行数据处理的强有力工具。它不仅用户界面友好,而且工作方式多有力工具。它不仅用户界面友好,而且工作方式多样化,用户可以根据自己对系统知识的掌握程度,样化,用户可以根据自己对系统知识的掌握程度,选择合适的工作方式。选择合适的工作方式。Visual FoxPro数据库管理系数据库管理系统还提供了多种数据的类型,并可以将
2、其存放在各统还提供了多种数据的类型,并可以将其存放在各种类型的数据容器中。本章将主要介绍种类型的数据容器中。本章将主要介绍Visual FoxPro系统的工作方式,数据类型、数据的存储方系统的工作方式,数据类型、数据的存储方式及各种类型的表达式。式及各种类型的表达式。 3.1 Visual FoxPro工作方式工作方式 Visual FoxPro不但拥有大量的交互式数据库管理工具,不但拥有大量的交互式数据库管理工具,而且还有一整套功能完善的程序语言系统及面向对象而且还有一整套功能完善的程序语言系统及面向对象可视化程序编写工具。为此,可视化程序编写工具。为此,Visual FoxPro系统给用系
3、统给用户提供了三种工作方式:户提供了三种工作方式: 命令方式、菜单方式及程序命令方式、菜单方式及程序文件方式。文件方式。 1. 命令方式命令方式 命令方式是通过用户在命令窗口输入操作命令,立即命令方式是通过用户在命令窗口输入操作命令,立即执行操作的交互式工作方式。执行操作的交互式工作方式。 在命令窗口中,可以输入单个的操作命令和系统命令,在命令窗口中,可以输入单个的操作命令和系统命令,从而完成对数据库的操作管理,系统程序的设计,各从而完成对数据库的操作管理,系统程序的设计,各种对象的创建和维护,以及系统环境的设置等。命令种对象的创建和维护,以及系统环境的设置等。命令窗口不仅是窗口不仅是Visu
4、al FoxPro命令的执行窗口,也是命令的执行窗口,也是Visual FoxPro命令文件的编辑窗口。命令文件的编辑窗口。 如果用户比较熟悉如果用户比较熟悉Visual FoxPro系统命令及数据库操系统命令及数据库操作命令,用命令方式要比菜单方式来得更方便快捷。作命令,用命令方式要比菜单方式来得更方便快捷。但是,由于但是,由于Visual FoxPro系统命令格式较为复杂,命系统命令格式较为复杂,命令种类繁多,初学者难于掌握,可考虑采用菜单方式。令种类繁多,初学者难于掌握,可考虑采用菜单方式。2. 菜单方式菜单方式 菜单方式是用户通过对系统菜单提供的菜单选项选择,菜单方式是用户通过对系统菜
5、单提供的菜单选项选择,完成对数据库的操作管理,系统程序的设计,各种对完成对数据库的操作管理,系统程序的设计,各种对象的创建和维护,以及系统环境设置的操作。象的创建和维护,以及系统环境设置的操作。 菜单方式也是一种交互式工作方式,只要选择一个菜菜单方式也是一种交互式工作方式,只要选择一个菜单选项,系统便完成一个对应的操作。这种直观、简单选项,系统便完成一个对应的操作。这种直观、简捷的界面操作,不要求熟悉操作命令,只要能够把握捷的界面操作,不要求熟悉操作命令,只要能够把握操作流程,选择合适的菜单选项,就能够完成操作任操作流程,选择合适的菜单选项,就能够完成操作任务。务。 菜单方式比命令方式容易掌握
6、,即学即会,但其操菜单方式比命令方式容易掌握,即学即会,但其操作步骤过多,执行任务的时间长。建议对于一些经作步骤过多,执行任务的时间长。建议对于一些经常性的操作,还是使用命令方式进行更妥。常性的操作,还是使用命令方式进行更妥。3. 程序文件方式程序文件方式 程序文件程序文件(简称程序简称程序)是为解决某一特定问题命令序是为解决某一特定问题命令序列的集合。因此,程序文件又称为命令文件,程序列的集合。因此,程序文件又称为命令文件,程序文件方式也称为命令文件方式。文件方式也称为命令文件方式。 程序文件方式先通过程序文件编辑工具,将对数据程序文件方式先通过程序文件编辑工具,将对数据库进行各种操作管理的
7、命令或对系统环境进行设置库进行各种操作管理的命令或对系统环境进行设置的命令,集中在一个以的命令,集中在一个以(.PRG)为扩展名的程序文件为扩展名的程序文件中;然后,通过菜单方式,或命令方式,或程序文中;然后,通过菜单方式,或命令方式,或程序文件方式运行这一程序文件;最后,系统将根据程序件方式运行这一程序文件;最后,系统将根据程序文件中的每一个命令完成操作任务。文件中的每一个命令完成操作任务。 用程序文件方式进行数据库管理,是把许多操作命用程序文件方式进行数据库管理,是把许多操作命令集中使用,不仅运行效率高,还可重复操作。但令集中使用,不仅运行效率高,还可重复操作。但是,若想编写一个解决实际问
8、题的应用程序,不是是,若想编写一个解决实际问题的应用程序,不是一日之功,需要对一日之功,需要对Visual FoxPro命令和语句进行系命令和语句进行系统地学习,同时还要掌握一定的程序设计方法。统地学习,同时还要掌握一定的程序设计方法。 有关程序设计的方法将在后续的各章节分别介绍。有关程序设计的方法将在后续的各章节分别介绍。3.2 数据类型数据类型 数据是反映客观事物属性的记录,它的类型决定了数据是反映客观事物属性的记录,它的类型决定了其存储和使用方式。在许多软件环境下,数据通常其存储和使用方式。在许多软件环境下,数据通常分为数值型和字符型两种基本类型,分为数值型和字符型两种基本类型,Visu
9、al FoxPro系统为了使用户建立和使用数据库更加方便,除了系统为了使用户建立和使用数据库更加方便,除了上述两种数据类型外,又细化分出了更多的类型。上述两种数据类型外,又细化分出了更多的类型。 1. 数值型数据数值型数据 数值型数据是由数字数值型数据是由数字(09)、小数点和正负号组成、小数点和正负号组成的。的。 数值型数据由于表达或存储形式的不同,又被分为数值型数据由于表达或存储形式的不同,又被分为数值型数值型(numeric)、浮点型、浮点型(float)、双精度型、双精度型(double)和整型和整型(integer)。2. 字符型数据字符型数据 字符型数据字符型数据(characte
10、r)描述的是不具有计算能力的描述的是不具有计算能力的文字数据类型,是最常用的数据类型之一。字符型文字数据类型,是最常用的数据类型之一。字符型数据是由汉字和数据是由汉字和ASCII字符集中可打印字符字符集中可打印字符(英文字英文字符、数字字符、空格及其他专用字符符、数字字符、空格及其他专用字符)组成的。组成的。 字符型数据的最大长度为字符型数据的最大长度为254个字符。个字符。3. 日期型日期型 日期型数据日期型数据(date)是用于表示日期的数据。是用于表示日期的数据。 其常规的输出格式为其常规的输出格式为 mm/dd/yy。其中:。其中:mm代表代表月,月,dd代表日,代表日,yy代表年。代
11、表年。 长度固定为长度固定为8位。位。4. 日期时间型日期时间型 日期时间型数据日期时间型数据(date time)是描述日期和时间的数是描述日期和时间的数据。据。 其常规的输出格式为其常规的输出格式为 mm/dd/yy hh:mm:ss。 其中:其中:yy代表年代表年,前两个前两个mm代表月,代表月,dd代表日,代表日,hh代表小时代表小时,后两个后两个mm代表分,代表分,ss代表秒。代表秒。 长度固定为长度固定为8位。位。5. 逻辑型逻辑型 逻辑型数据逻辑型数据(logic)是描述客观事物真假的数据,用是描述客观事物真假的数据,用于表示逻辑判断结果。于表示逻辑判断结果。 逻辑型数据只有真逻
12、辑型数据只有真(.T.或或.Y.)和假和假(.F.或或.N.)两种值。两种值。 长度固定为长度固定为1位。位。6. 备注型备注型 备注型数据备注型数据(memo)是用于存放较长的字符型数据是用于存放较长的字符型数据的数据类型。的数据类型。 备注型数据是字符型数据的特殊形式,备注型数据备注型数据是字符型数据的特殊形式,备注型数据没有数据长度限制,仅受限于现有的磁盘空间。它没有数据长度限制,仅受限于现有的磁盘空间。它只用于数据表中的字段类型的定义,其字段长度固只用于数据表中的字段类型的定义,其字段长度固定为定为4位,而实际数据被存放在与数据表文件同名位,而实际数据被存放在与数据表文件同名的备注文件
13、中,长度根据数据的内容而定。的备注文件中,长度根据数据的内容而定。7. 通用型通用型 通用型数据通用型数据(general)是用于存储是用于存储OLE对象的数据。对象的数据。 通用型数据中的通用型数据中的OLE对象可以是电子表格、文档、对象可以是电子表格、文档、图片等。图片等。OLE对象的实际内容、类型和数据量取决对象的实际内容、类型和数据量取决于连接或嵌入于连接或嵌入OLE对象的操作方式。如果采用对象的操作方式。如果采用连接连接OLE对象方式,则数据表中只包含对对象方式,则数据表中只包含对OLE对对象的引用说明,以及对创建该象的引用说明,以及对创建该OLE对象的应用程序对象的应用程序的引用说
14、明;如果采用嵌入的引用说明;如果采用嵌入OLE对象方式,则数据对象方式,则数据表中除包含对表中除包含对OLE对象的引用说明及对创建该对象的引用说明及对创建该OLE对象的应用程序的引用说明外,还包含对象的应用程序的引用说明外,还包含OLE对象中的实际数据。对象中的实际数据。 通用型数据只用于数据表中的字段类型的定义。其通用型数据只用于数据表中的字段类型的定义。其长度固定为长度固定为4位,实际数据长度仅受限于现有的磁位,实际数据长度仅受限于现有的磁盘空间。盘空间。3.3 数据存储数据存储 数据输入、输出是通过数据的存储设备完成的。通数据输入、输出是通过数据的存储设备完成的。通常都是将数据存入到常量
15、、变量、数组中,而在数常都是将数据存入到常量、变量、数组中,而在数据库系统环境下,还可以把数据存入到字段、记录据库系统环境下,还可以把数据存入到字段、记录和对象中。我们把这些供数据存储的常量、变量、和对象中。我们把这些供数据存储的常量、变量、数组、字段、记录和对象统称为数据存储容器。数组、字段、记录和对象统称为数据存储容器。 对数据进行加工处理时,数据存储容器的不同,决对数据进行加工处理时,数据存储容器的不同,决定了数据的类型和使用方法的不同,同时也限定了定了数据的类型和使用方法的不同,同时也限定了数据的使用范围。以下我们介绍常用的几种数据存数据的使用范围。以下我们介绍常用的几种数据存储容器。
16、储容器。 3.3.1 常量常量 常量是一个命名的数据项,是在命令或程序中直接常量是一个命名的数据项,是在命令或程序中直接引用的实际值,其特征是它在所有的操作中其值不引用的实际值,其特征是它在所有的操作中其值不变。变。 常量有数值型、浮点型、字符型、逻辑型、日期型常量有数值型、浮点型、字符型、逻辑型、日期型和时间日期型六种。和时间日期型六种。 1. 数值型常量数值型常量 由数字由数字(09)、小数点和正负号组成。、小数点和正负号组成。 如:如: 8713.25 -12368 +3325.67 2. 浮点型常量浮点型常量 由数字由数字(09)、小数点和正负号组成的浮点格式。、小数点和正负号组成的浮
17、点格式。 如:如: -987e+15 +123456e-793. 字符型常量字符型常量 由汉字和由汉字和ASCII字符集中可打印字符组成,并由定字符集中可打印字符组成,并由定界符界符(“ ”、 、 )括起来的字符串。括起来的字符串。 如:如: “STRING”“数据库的应用系统数据库的应用系统”4. 逻辑型常量逻辑型常量 由表示逻辑判断结果的由表示逻辑判断结果的“.T.”或或“.F.”符号组成。符号组成。 如:如: .t. 或或 .T.f.或或 .F.5. 日期常量日期常量 由按其常规的输入格式由按其常规的输入格式 yyyy/mm/dd表示的符号表示的符号组成。组成。 如:如: 2000/12
18、/202000/01/016. 时间日期型常量时间日期型常量 由按其常规的输入格式由按其常规的输入格式 yyyy/mm/dd hh:mm:ss表示的符号组成。表示的符号组成。 如:如: 2000/12/12 11:50:003.3.2 内存变量内存变量 内存变量是一般意义下的简单变量。每一个内存变内存变量是一般意义下的简单变量。每一个内存变量都必须有一个固定的名称,以标识它在该内存单量都必须有一个固定的名称,以标识它在该内存单元的存储位置,用户可以通过变量标识符来存取常元的存储位置,用户可以通过变量标识符来存取常量。量。 1. 内存变量的命名内存变量的命名 内存变量名是由字母、数字和下划线组成
19、的,不能内存变量名是由字母、数字和下划线组成的,不能与与Visual FoxPro系统提供的命令、语句专用符号系统提供的命令、语句专用符号相同,也不能和相同,也不能和Visual FoxPro系统提供的函数名同系统提供的函数名同名。名。 如果内存变量与数据表中的字段变量同名时,用户如果内存变量与数据表中的字段变量同名时,用户在引用内存变量时,要在其名字前加一个前缀在引用内存变量时,要在其名字前加一个前缀(m.),用以强调这一变量是内存变量。用以强调这一变量是内存变量。2. 内存变量的类型内存变量的类型 用户可以根据需要定义内存变量类型,它的类型取用户可以根据需要定义内存变量类型,它的类型取决于
20、首次接受的常量的类型。也就是说,内存变量决于首次接受的常量的类型。也就是说,内存变量类型的定义是通过赋值语句来完成的。类型的定义是通过赋值语句来完成的。 内存变量的类型有数值型、浮点型、字符型、逻辑内存变量的类型有数值型、浮点型、字符型、逻辑型、日期型、时间日期型六种。型、日期型、时间日期型六种。3. 内存变量的赋值内存变量的赋值 内存变量是内存中的临时存储单元,在程序的执行内存变量是内存中的临时存储单元,在程序的执行过程中,可以用来保留中间结果和最后结果,或用过程中,可以用来保留中间结果和最后结果,或用来保留对数据库进行某种分析处理后得到的结果。来保留对数据库进行某种分析处理后得到的结果。
21、给内存变量的赋值的命令有给内存变量的赋值的命令有STORE和和“=”。 STORE 命令格式:命令格式: STORE 表达式表达式 TO 内存变量表内存变量表 命令功能:命令功能: 先计算表达式的值,然后将该值先计算表达式的值,然后将该值赋给内存变量表中每一个变量。赋给内存变量表中每一个变量。 “=”命令格式:命令格式: 内存变量内存变量=表达式表达式 命令功能:命令功能: 先计算表达式的值,然后将该值先计算表达式的值,然后将该值赋给以内存变量为名的内存变量。赋给以内存变量为名的内存变量。 特别要注意,除非用内存变量文件来保存内存变量特别要注意,除非用内存变量文件来保存内存变量值,否则,当退出
22、值,否则,当退出Visual FoxPro系统后,内存变量系统后,内存变量的值也会与系统一起消失。的值也会与系统一起消失。 例例3.1给内存变量给内存变量A1,A2赋值。赋值。 A1=123+456 STOREVisual FoxProTOA24. 内存变量值的输出内存变量值的输出 输出内存变量值可以使用输出内存变量值可以使用“?”命令。命令。 “?”命令的格式:命令的格式: ? 表达式表达式 命令功能:命令功能: 先计算表达式的值,然后将该值先计算表达式的值,然后将该值输出到显示器上。输出到显示器上。 例例3.2输出内存变量输出内存变量A1,A2的值。的值。 ? A1 ? A2 + 系统系统
23、5. 内存变量的清除内存变量的清除 在系统程序开始运行时,或程序运行过程中,经常在系统程序开始运行时,或程序运行过程中,经常对内存变量进行清理,会提高程序的运行速度和质对内存变量进行清理,会提高程序的运行速度和质量。量。 使用使用RELEASE命令可以清除不再使用的内存变量命令可以清除不再使用的内存变量或所有内存变量。或所有内存变量。 RELEASE命令格式:命令格式: RELEASE 内存变量表内存变量表 ALL 命令功能:命令功能: 从内存中清除指定的内存变量。从内存中清除指定的内存变量。 例例3.3清除清除A1,A2两个内存变量。两个内存变量。 RELEASE A1,A2 例例3.4清除
24、所有的内存变量。清除所有的内存变量。 RELEASE ALL6. 内存变量的作用域内存变量的作用域 内存变量的作用域就是它的作用范围。根据内存变内存变量的作用域就是它的作用范围。根据内存变量的作用范围分为全局变量、局部变量和本地变量。量的作用范围分为全局变量、局部变量和本地变量。 使用使用LOCAL、PRIVATE、PUBLIC命令可以定义命令可以定义内存变量的作用域,也可以使用系统默认的范围作内存变量的作用域,也可以使用系统默认的范围作为内存变量的作用域。为内存变量的作用域。(1) 定义全局变量定义全局变量 用用PUBLIC命令定义的内存变量,可视为全局变量。命令定义的内存变量,可视为全局变
25、量。 全局变量在全部程序、过程和自定义函数,以及它全局变量在全部程序、过程和自定义函数,以及它所调用的程序、过程和自定义函数中都有效。即使所调用的程序、过程和自定义函数中都有效。即使整个程序结束,全局变量也不被释放,它们的值仍整个程序结束,全局变量也不被释放,它们的值仍然保存在内存中。如要释放,要用然保存在内存中。如要释放,要用RELEASE命令命令进行操作。进行操作。 全局变量必须先定义,后赋值。已经定义成全局变全局变量必须先定义,后赋值。已经定义成全局变量的内存变量,还可以在下级程序中进一步定义成量的内存变量,还可以在下级程序中进一步定义成局部变量。但已经定义成局部变量的内存变量,却局部变
26、量。但已经定义成局部变量的内存变量,却不可以再定义成全局变量。除了在程序中将内存变不可以再定义成全局变量。除了在程序中将内存变量定义成全局变量外,在命令窗口使用的所有内存量定义成全局变量外,在命令窗口使用的所有内存变量都视为全局变量。变量都视为全局变量。PUBLIC命令格式:命令格式:PUBLIC内存变量表内存变量表 命令功能:命令功能: 定义内存变量表中指定的内存变定义内存变量表中指定的内存变量为全局变量。量为全局变量。 例例3.5定义定义P1,P2为全局变量。为全局变量。PUBLIC P1,P2(2) 定义局部变量定义局部变量 用用PRIVATE命令定义的内存变量,可视为局部变命令定义的内
27、存变量,可视为局部变量。量。 局部变量在定义它的程序,以及被该程序调用的程局部变量在定义它的程序,以及被该程序调用的程序、过程和局部变量函数中有效。一旦定义它的程序、过程和局部变量函数中有效。一旦定义它的程序运行完毕,局部变量便从内存中释放;如果定义序运行完毕,局部变量便从内存中释放;如果定义它的程序再调用其他子程序,则该变量在子程序中它的程序再调用其他子程序,则该变量在子程序中继续有效;如果它在子程序中改变了值,则返回调继续有效;如果它在子程序中改变了值,则返回调用程序时也带回新值,并在程序中继续使用;如果用程序时也带回新值,并在程序中继续使用;如果另一个程序调用它的程序,调用程序中与定义它
28、另一个程序调用它的程序,调用程序中与定义它的程序同名的内存变量将被屏蔽,而一旦调用程序的程序同名的内存变量将被屏蔽,而一旦调用程序运行完毕,所有被屏蔽的内存变量便又恢复原来的运行完毕,所有被屏蔽的内存变量便又恢复原来的状态。状态。 PRIVATE命令格式:命令格式:PRIVATE内存变量表内存变量表 命令功能:命令功能: 定义内存变量表中指定的内存变定义内存变量表中指定的内存变量为局部变量。量为局部变量。 例例3.6定义定义P11,P12为局部变量。为局部变量。 PRIVATEP11,P12(3) 定义本地变量定义本地变量 用用LOCAL命令定义的内存变量,可视为本地变量。命令定义的内存变量,
29、可视为本地变量。 本地变量只在定义它的程序中有效。一旦定义它的本地变量只在定义它的程序中有效。一旦定义它的程序运行完毕,本地变量将从内存中释放。需要注程序运行完毕,本地变量将从内存中释放。需要注意的是,无论是被定义它的程序调用的程序,还是意的是,无论是被定义它的程序调用的程序,还是调用定义它的程序都不能使用这些内存变量。调用定义它的程序都不能使用这些内存变量。 LOCAL命令格式:命令格式:LOCAL内存变量表内存变量表 命令功能:命令功能: 定义内存变量表中指定的内存变定义内存变量表中指定的内存变量为本地变量。量为本地变量。 例例3.7定义定义L1,L2为本地变量。为本地变量。LOCALL1
30、,L23.3.3 数组变量数组变量 数组是一组有序内存变量的集合。或者说,数组是数组是一组有序内存变量的集合。或者说,数组是由同一个名字组织起来的简单内存变量的集合。其由同一个名字组织起来的简单内存变量的集合。其中每一个内存变量都是这个数组的一个元素,它是中每一个内存变量都是这个数组的一个元素,它是由一个以行和列形式表示的数组元素的矩阵。由一个以行和列形式表示的数组元素的矩阵。 所有的数组元素是用同一个变量名命名的一个集合所有的数组元素是用同一个变量名命名的一个集合体,而且每一个数组元素在内存中独占一个内存单体,而且每一个数组元素在内存中独占一个内存单元。为了区分不同的数组元素,每一个数组元素
31、都元。为了区分不同的数组元素,每一个数组元素都是通过数组名和下标来访问的是通过数组名和下标来访问的(如如A1,2、B5)。 数组是内存变量的一种特殊形式,使用时也同样要数组是内存变量的一种特殊形式,使用时也同样要注意其作用域。注意其作用域。1. 定义数组定义数组 在在Visual FoxPro系统环境下,可以通过系统环境下,可以通过DIMENSION或或DECLARE定义只有一个下标的一定义只有一个下标的一维数组或有两个下标的二维数组。数组一旦定义,维数组或有两个下标的二维数组。数组一旦定义,它的初始值为逻辑值它的初始值为逻辑值.F.,下标的起始值是,下标的起始值是1。 DIMENSION命令
32、格式:命令格式:DIMENSION数组名数组名1(下标下标1,下标,下标2),数组名,数组名2(下标下标1,下标,下标2)DECLARE命令格式:命令格式:DECLARE数组名数组名1(下标下标1,下标,下标2),数组名,数组名2(下标下标1,下标,下标2) 以上两个命令功能:以上两个命令功能: 定义一个或多个数组,同时定义一个或多个数组,同时又定义了下标的个数及下标的上界。又定义了下标的个数及下标的上界。 在在Visual FoxPro系统中,数组也可以重新定义,并系统中,数组也可以重新定义,并能动态地能动态地“放大缩小放大缩小”,如果改变原数组的维数和,如果改变原数组的维数和容量,原数组中
33、每个元素的值不变。因为数组是内容量,原数组中每个元素的值不变。因为数组是内存变量,在新定义或重新定义数组时,要特别注意存变量,在新定义或重新定义数组时,要特别注意内存空间的大小,避免出现内存不够的现象。内存空间的大小,避免出现内存不够的现象。 例例3.8定义一个一维数组定义一个一维数组SZ1和一个二维数组和一个二维数组SZ2。 DIMENSIONSZ1(10),SZ2(5,2) 上面这一定义一旦完成,系统就允许使用上面这一定义一旦完成,系统就允许使用SZ1和和SZ2两个数组。两个数组。 SZ1是一维数组,是一维数组,SZ1下标的上界下标的上界10,下界为,下界为1。数。数组元素分别为组元素分别
34、为SZ1(1),SZ1(2),SZ1(3) SZ1(10)。 SZ2是二维数组,是二维数组,SZ2第一个下标为行标,上界第一个下标为行标,上界5,下界为下界为1,SZ2第二个下标为列标,上界第二个下标为列标,上界2,下界为,下界为1。数组元素分别为。数组元素分别为SZ2(1,1),SZ2(1,2),SZ2(2,1),SZ2(2,2) SZ2(5,1),SZ2(5,2)。2. 数组类型数组类型 数组类型是指数组元素的类型。因为每一个数组元数组类型是指数组元素的类型。因为每一个数组元素又是一个内存变量,所以它的类型同样由它接受素又是一个内存变量,所以它的类型同样由它接受的数据的类型所决定。的数据的
35、类型所决定。 在在Visual FoxPro系统环境下,同一个数组元素在不系统环境下,同一个数组元素在不同时刻可以存放不同类型的数据,在同一个数组中,同时刻可以存放不同类型的数据,在同一个数组中,每个元素的值可以是不同的数据类型。每个元素的值可以是不同的数据类型。3. 数组赋值数组赋值 给数组赋值,就是分别给每个数组元素赋值,与给给数组赋值,就是分别给每个数组元素赋值,与给内存变量赋值操作完全相同。内存变量赋值操作完全相同。 例例3.9定义一个一维数组定义一个一维数组X,给所有数组元素赋值,给所有数组元素赋值并输出其值。并输出其值。DIMENSIONX(4)X(4)=12345STORE0TO
36、X(1),X(2),X(3)? X(1),X(2),X(3),X(4)4. 数组传递数组传递 使用命令使用命令SCATTER、COPY TO ARRAY、GATHER命令,可以实现数据表与数组间数据的传命令,可以实现数据表与数组间数据的传递。递。COPY TO ARRAY命令格式:命令格式:COPY TO ARRAY数组名数组名FIELDS 字段名字段名表表范围范围FOR条件条件1WHILE 条件条件2 SCATTER命令格式:命令格式:SCATTERFIELDS字段名表字段名表TO数组名数组名 以上两个命令功能:以上两个命令功能: 将当前数据表中的数据,传将当前数据表中的数据,传递到数组名指
37、定的数组中。递到数组名指定的数组中。 GATHER命令格式:命令格式:GATHER FROM数组名数组名FIELDS字段名字段名表表 命令功能:命令功能: 将数组名指定的数组中的数据,将数组名指定的数组中的数据,传递到当前数据表中。传递到当前数据表中。5. 数组特性数组特性 在在Visual FoxPro数据库管理系统环境下,对数据库数据库管理系统环境下,对数据库进行操作时引用数组,会使数据操作更方便。进行操作时引用数组,会使数据操作更方便。 数组和数据表相比有如下优点:数组和数据表相比有如下优点:(1) 数组可以不像数据表一样有一个固定的结构。数组可以不像数据表一样有一个固定的结构。(2)
38、因为数组中的数据存放在内存中,数据表中的数因为数组中的数据存放在内存中,数据表中的数据存放在磁盘上,所以对数组中数据的访问比对数据存放在磁盘上,所以对数组中数据的访问比对数据表中的数据访问速度要快。据表中的数据访问速度要快。(3) 数组可以在原有的内存空间进行数据排序,不需数组可以在原有的内存空间进行数据排序,不需要额外的内存和磁盘空间。要额外的内存和磁盘空间。3.3.4 字段变量字段变量 字段变量是数据库管理系统中的一个重要概念,它字段变量是数据库管理系统中的一个重要概念,它与记录一纵一横构成了数据表的基本结构。通过前与记录一纵一横构成了数据表的基本结构。通过前面的学习,我们已经知道,一个数
39、据库是由若干相面的学习,我们已经知道,一个数据库是由若干相关的数据表组成,一个数据表是由若干个具有相同关的数据表组成,一个数据表是由若干个具有相同属性的记录组成,而每一个记录又是由若干个字段属性的记录组成,而每一个记录又是由若干个字段组成。组成。 字段变量就是指数据表中已定义的任意一个字段。字段变量就是指数据表中已定义的任意一个字段。可以这样理解,在一个数据表中,同一个字段名下可以这样理解,在一个数据表中,同一个字段名下有若干个数据项,而数据项的值取决于该数据项所有若干个数据项,而数据项的值取决于该数据项所在记录行的变化,所以称它为字段变量,也有人把在记录行的变化,所以称它为字段变量,也有人把
40、字段变量称之为字段名变量。字段变量称之为字段名变量。 字段变量的数据类型与该字段定义的类型一致。字字段变量的数据类型与该字段定义的类型一致。字段变量的类型有数值型、浮点型、整型、双精度型、段变量的类型有数值型、浮点型、整型、双精度型、字符型、逻辑型、日期型、时间日期型、备注型和字符型、逻辑型、日期型、时间日期型、备注型和通用型等。通用型等。 使用字段变量首先要建立数据表,建立数据表时首使用字段变量首先要建立数据表,建立数据表时首先定义的就是字段变量属性先定义的就是字段变量属性(名字、类型和长度名字、类型和长度)。字段变量的定义及字段变量数据的输入、输出,需字段变量的定义及字段变量数据的输入、输
41、出,需要在表设计器和表浏览、编辑窗口中进行。有关这要在表设计器和表浏览、编辑窗口中进行。有关这方面的内容,将在第方面的内容,将在第4章作详细的介绍。章作详细的介绍。3.3.5 记录记录 记录是数据表中一组数据项的集合。在同一个数据表记录是数据表中一组数据项的集合。在同一个数据表中可以有若干个记录,每一个记录具有相同的字段个中可以有若干个记录,每一个记录具有相同的字段个数。数。 在在Visual FoxPro系统中,许多操作都是通过记录操作系统中,许多操作都是通过记录操作来完成的。有关这方面的内容,将在第来完成的。有关这方面的内容,将在第4章作详细的介章作详细的介绍。绍。3.3.6 对象对象 对
42、象是数据存储器的一种。对象是类的实体,是任何对象是数据存储器的一种。对象是类的实体,是任何具有属性和方法的信息的集合。对象的建立可以通过具有属性和方法的信息的集合。对象的建立可以通过设计器和设计器和CREATE OBJECT()函数实现。函数实现。 在在Visual FoxPro系统中,引用对象是可视化编程的重系统中,引用对象是可视化编程的重要手段。有关这方面的内容,将在第要手段。有关这方面的内容,将在第10章作详细的介章作详细的介绍。绍。3.4 函数函数 Visual FoxPro系统提供了一批具有特定功能的标准系统提供了一批具有特定功能的标准函数。这些函数实际上是系统提供的固定的程序,函数
43、。这些函数实际上是系统提供的固定的程序,用户可直接引用,从而完成某些特定的操作。用户可直接引用,从而完成某些特定的操作。1. 标准函数的类型标准函数的类型 根据每一个函数的功能,可将标准函数大致分为以根据每一个函数的功能,可将标准函数大致分为以下类型:下类型:(1) 数值型函数数值型函数(2) 字符型函数字符型函数(3) 数据转换函数数据转换函数(4) 日期和时间函数日期和时间函数(5) 变量处理函数变量处理函数(6) 数据库函数数据库函数(7) 环境函数环境函数(8) 数据共享函数数据共享函数(9) 输入和输出函数输入和输出函数(10) 编程函数编程函数(11) 动态链接库函数动态链接库函数
44、2. 常用的标准函数常用的标准函数 表表3-1所列的是所列的是Visual FoxPro系统中的部分标准函系统中的部分标准函数格式及功能。数格式及功能。表表3-1(书第书第46页页)3.5 表达式表达式 表达式是由数据、数据存储容器和运算符组成的运表达式是由数据、数据存储容器和运算符组成的运算式。根据不同的运算符及表达式结果的不同,表算式。根据不同的运算符及表达式结果的不同,表达式有五种常用类型。达式有五种常用类型。 3.5.1 算术表达式算术表达式 算术表达式可由算术运算符和数值型常量、数值型算术表达式可由算术运算符和数值型常量、数值型内存变量、数值型数组、数值类型的字段、返回数内存变量、数
45、值型数组、数值类型的字段、返回数值型数据的函数组成。算术表达式的运算结果是数值型数据的函数组成。算术表达式的运算结果是数值型常数。值型常数。3.5.2 字符表达式字符表达式 字符表达式可由字符运算符和字符型常量、字符型内字符表达式可由字符运算符和字符型常量、字符型内存变量、字符型数组、字符型类型的字段、返回字符存变量、字符型数组、字符型类型的字段、返回字符型数据的函数组成。字符表达式运算的结果是字符常型数据的函数组成。字符表达式运算的结果是字符常数或逻辑型常数。数或逻辑型常数。 “”和和“-”两者均是完成字符串连接的运算。不同两者均是完成字符串连接的运算。不同的是前者是将运算符的是前者是将运算
46、符“”两边的字符串完全连接;两边的字符串完全连接;后者则是先去掉运算符后者则是先去掉运算符“-”前面字符串的尾部空格,前面字符串的尾部空格,然后再与运算符后面的字符串连接。当运算符前面字然后再与运算符后面的字符串连接。当运算符前面字符串的尾部没有空格时,两种连接运算结果是一样的。符串的尾部没有空格时,两种连接运算结果是一样的。 是包含运算,其功能是检测两个字符串中,后串是是包含运算,其功能是检测两个字符串中,后串是否包含前串的内容。如果后串包含前串的内容,其结否包含前串的内容。如果后串包含前串的内容,其结果为真果为真(.T.);否则,其结果为假;否则,其结果为假(.F.)。3.5.3 时间日期
47、表达式时间日期表达式 时间日期表达式可由时间日期运算符和时间日期型时间日期表达式可由时间日期运算符和时间日期型常量、时间日期型内存变量和数组、返回时间日期常量、时间日期型内存变量和数组、返回时间日期型数据的函数组成。型数据的函数组成。 “”运算符的运算规则是在已给的日期上加天数运算符的运算规则是在已给的日期上加天数或在已给的时间日期上加秒数。或在已给的时间日期上加秒数。 “-”运算符的运算规则是计算已给的两个日期相差运算符的运算规则是计算已给的两个日期相差的天数或计算已给的两个时间日期相差的秒数。的天数或计算已给的两个时间日期相差的秒数。3.5.4 关系表达式关系表达式 关系表达式可由关系运算符和字符表达式、算术表关系表达式可由关系运算符和字符表达式、算术表达式、时间表达式组成。达式、时间表达式组成。 关系运算是运算符两边同类型元素的比较,其运算关系运算是运算符两边同类型元素的比较,其运算结果为逻辑型常量,关系成立结果为结果为逻辑型常量,关系成立结果为(T);反之,;反之,结果为结果为(F)。3.5.5 逻辑表达式逻辑表达式 逻辑表达式可由逻辑运算符和逻辑型常量、逻辑型逻辑表达式可由逻辑运算符和逻辑型常量、逻辑型内存变量、逻辑型数组、返回逻辑型数据的函数和内存变量、逻辑型数组、返回逻辑型数据的函数和关系表达式组成。逻辑表达式的运算结果是逻辑型关系表达式组成。逻辑表达式的运算结果是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 配置中心统一管理实践案例
- 2026四川乐山市夹江县人民医院自主招聘护理人员4人备考题库及完整答案详解
- 2026内蒙古呼和浩特市土默特左旗专职网格员储备库建设招录储备人才52人备考题库附答案详解(黄金题型)
- 2026云南临沧临翔区天一口腔诊所招聘1人备考题库附答案详解(夺分金卷)
- 2026江苏苏州交投集团所属企业招聘51人备考题库(第一批次)含答案详解(黄金题型)
- 2026年河南省济源示范区事业单位联考招聘118名备考题库及参考答案详解一套
- 2026上半年广东省城际轨道交通运营有限公司生产人员招聘备考题库附答案详解(精练)
- 2026安徽合肥国家实验室技术支撑岗位招聘备考题库含答案详解(b卷)
- 2026河南郑州惠济区迎宾路社区卫生服务中心招聘4人备考题库及参考答案详解一套
- 2026湖北武汉市新洲区中医骨伤专科医院招聘护理人员7人备考题库及完整答案详解
- 2025年甘肃卫生职业学院单招职业适应性考试模拟测试卷附答案
- 2025年江苏省安全员《A证》考试题库及答案
- 2025年AP考试物理C真题
- 2025课堂惩罚 主题班会:马达加斯加企鹅课堂惩罚 课件
- 施工现场交通安全课件
- Maya 2024三维设计基础教程(全彩微课版) 课件全套 来阳 第1-10章 初识Maya 2024 -综合实例
- 2025年天津市高考英语试卷(含答案及解析)
- 城市供水调研报告(老旧小区改造调研内容)
- 工业企业精益智造成熟度评价规范
- 2025年中国地质调查局招聘面试题预测与备考指南
- 农业生产资金管理规定
评论
0/150
提交评论