已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章VisualFoxPro基础知识,本章要点,1.VisualFoxPro命令的格式与书写规则2.文件类型3.数据类型4.数据存储5.表达式6.函数,VisualFoxPro功能异常强大,拥有近500条命令。且其命令比一般程序设计语言中的语句更加精练、功能更强。掌握一些常用命令,可以使操作更方便、快捷、高效。本节介绍VisualFoxPro命令的一般格式及其书写规则。(1)VisualFoxPro的命令格式一条命令通常由命令动词和若于个短语组成。命令动词表明该命令执行什么操作,短语用于说明命令的操作对象、操作条件等,短语有时又称为子句。VisualFoxPro命令的典型格式为:FORWHILETOFILE|TOPRINTER|TO,1.VisualFoxPro命令的格式与书写规则,1)命令格式中各符号的含义:必选项:可选项,视具体使用要求由用户选择|:在由它所分隔的各项中选择其一.:表示此部分可以类似方法重复多次【例】LIST学号,姓名,性别FORYEAR(出生日期)=1986TOPRINTER2)命令格式中各部分功能命令动词例如LIST,USE,COUNT等。表达式表,由一个或多个逗号分隔。如:姓名+STR(总分)也是一个表达式。范围它指定命令可以操作的记录集合。范围可有下列四种选择:ALL、NEXT、RECORD、REST,FOR它规定只对满足条件的记录进行操作,如果使用FOR子句VisualFoxPro将记录指针重新指向表文件顶,并且用FOR条件与每条记录进行比较。上例中的FORYEAR(出生日期)=1986子句,表示只选择出生日期为1986年的学生记录进行操作。WHILE在表文件中,从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索并结束该命令的执行,在FOR子句和WHILE子句中,必须返回逻辑值。TOFILE|TOPRINTER|TO它控制操作结果的输出,TOFILE命令允许结果向文件输出;TOPRINTER命令允许操作结果向打印机输出;TO命令允许操作结果向内存变量输出。,(2)VisualFoxPro命令的书写规则在VisualFoxPro中,命令的书写(或输入)规则相当灵活、方便,主要有以下几点:1)命令动词必须写在命令的最前面,而各短语的前后顺序可以任意排列。例如,下面两条命令的执行结果完全一样:LIST学号,姓名,性别FORYEAR(出生日期)=1986LISTFORYEAR(出生日期)=1986学号,姓名,性别2)命令动词与短语之间、短语与短语之间、短语的各部分之间(如短语NEXT3的NEXT与3之间,短语FOR性别=女的FOR与性别=女之间)必须用空格分隔开。3)命令动词、各短语中的保留字及函数名在不至于引起混淆的情况下可以简写为前4个字符,而且英文字母大小写等效。例如,DISPLAY可以写成DISP或disp,但LOCAL与LOCATE则应注意。显然,大量使用简写必然会降低可读性,建议适量使用简写为佳。4)一条命令的长度可达8192个字符。当一行写不下时,可在适当位置输入续行符;并按回车键换行,继续输入该命令。,2.文件扩展名与文件类型,下表列出了VisualFoxPro常用的文件扩展名及其关联的文件类型与含义。扩展名文件类型.dbc/.dct/.dcx数据库/数据库备注/数据库索引.dbf/.fpt表/表备注.prg/.fxp程序/编译后的程序.exe/.err可执行程序/编译错误.frx/.frt报表/报表备注.cdx/.idx复合索引/简单索引,压缩索引.mnx/.mnt/.mpr/.mpx菜单/菜单备注/生成的菜单程序/编译后的菜单程序.scx/.sct表单/表单备注.mem内存变量文件.pjx/.pjt项目/项目备注.qpr/.qpx查询程序/编译后的查询程序,3.数据类型,数据是反映客观事物属性的记录。通常分为数值型和字符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。VisualFoxPro系统为了使用户建立和使用数据库更加方便,将数据细化分为以下几种类型。(1)字符型字符型数据描述不具有计算能力的文字数据类型,是最常用的数据类型之一。字符型数据(Character)是由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格及其他专用字符)组成,长度范围是0254个字符。,数值型数据通常分为以下四种类型:1)数值型数值型数据(Numeric)是由数字(09)、小数点和正负号组成。最大长度为20位(包括、和小数点)。2)浮点型浮点型数据(Float)是数值型数据的一种,与数值型数据完全等价。浮点型数据只是在存储形式上采取浮点格式。3)双精度型双精度型数据(douBle)是更高精度的数值型数据。它只用于数据表中的字段类型的定义,并采用固定长度浮点格式存储。4)整型整型数据(Integer)是不包含小数点部分的数值型数据。它只用于数据表中的字段类型的定义。整型数据以二进制形式存储。,(2)数值型,(3)货币型货币型数据(currencY)用于表示货币型的量。(4)日期型日期型数据(Date)是用于表示日期的数据,用默认格式mm/dd/yyyy来表示。其中mm代表月,dd代表日,yyyy代表年,长度固定为8位。(5)日期时间型日期时间型数据(dateTime)是描述日期和时间的数据。其默认格式为mm/dd/yyyyhh:mm:ss。其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒,长度固定为8位。,(6)逻辑型逻辑型数据(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位。(7)备注型备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。备注型数据没有数据长度限制,仅受限于现有的磁盘空间。它只用于数据表中的字段类型的定义,其字段长度固定为10位,而实际数据被存放在与数据表文件同名的备注文件中,长度根据数据的内容而定。,通用型数据(General)是用于存储OLE对象的数据。通用型数据中的OLE对象可以是电子表格、文档、图片等。它只用于数据表中的字段类型的定义。OLE对象的实际内容、类型和数据量则取决于连接或嵌入OLE对象的操作方式。如果采用连接OLE对象方式,则数据表中只包含对OLE对象的引用说明,以及对创建该OLE对象的应用程序的引用说明;如果采用嵌入OLE对象方式,则数据表中除包含对创建该OLE对象的应用程序的引用说明,还包含OLE对象中的实际数据。通用型数据长度固定为4位,实际数据长度仅受限于现有的磁盘空间。,(8)通用型,4.数据存储,在VisualFoxPro系统环境下,数据输入、输出是通过数据的存储设备完成的。通常我们都是将数据存入到常量、变量、数组中,而在VisualFoxPro系统环境下,数据还可以存入到字段、记录和对象中。我们把这些供数据存储的常量、变量、数组、字段、记录和对象称为数据存储容器。(1)常量常量是一个命名的数据项,是在命令或程序中直接引用的实际值,其特征是在所有的操作中其值不变。常量有以下六种。1)数值型常量(浮点型常量:是数值型常量的浮点格式)由数字(09)、小数点和正负号组成。例如12、3.45、-1.678、2E-5、3.4E3等。,2)货币型常量货币型常量以符号$开头,小数部分若超过4位,则四舍五入取4位小数。例如,$518,$22.18等。3)字符型常量由汉字和ASCII字符集中可打印字符组成的字符串,使用时必须用定界符括起来。例如,计算机,123,数据,IBMPC。注意:不包含任何字符的字符串()叫空串,它与包含空格的字符串()不同。4)逻辑型常量由表示逻辑判断结果“真”或“假”符号组成。逻辑真的常量表示形式有:.T.、.t.、.Y.和.y.;逻辑假的常量表示形式有:.F.、.f.、.N.和.n.,但系统将一律接收为.T.或.F.。前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。逻辑型数据只占用一个字节。,5)日期常量用于表示日期,日期型常量的格式有两种:传统的日期格式系统默认的日期型数据为美国日期格式(mm/dd/yy,月/日/年),传统日期格式中的月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。这种格式的日期型常量要受到命令语句SETDATE和SETCENTURY设置的影响,也就是说,在不同的设置状态下,计算机会对同一个日期型常量做出不同的解释。严格的日期格式yyyy-mm-dd,用这种格式书写的日期常量能表达一个确切的日期,它不受SETDATE等语句设置的影响。6)时间日期型常量用于表示时间日期,其规定格式以yyyy/mm/ddhh:mm:ss表示,如2002-08-2,11:30P,2001-10-1,3。,常量可以在VisualFoxPro的命令窗口中通过以下命令创建或释放:#DEFINE常量名常量值&常量的创建#UNDEF常量名&常量的释放常量名是指以字母或下划线开始,后面可以跟任意个字母或数字的字符串。如X1、CONST_1等(注意:在VisualFoxPro的常量名中字母的大小写具有同样含义)。常量值是指常量名所代表的数值。例如:#DEFINEPI3.14159一但通过#DEFINE常量名常量值命令定义了一个常量名后,则在以后的应用中可以用此常量名代表常量出现,但不能对符号常量重新赋值,直到遇见#UNDEF常量名命令释放定义或程序结束为止。,在命令操作或程序执行过程中,其值可以改变的量称为变量。VisualFoxPro的变量分为字段变量和内存变量两大类。由于表中的各条记录对同一个字段名可能取值不同。因此,表中的字段名就是变量,称为字段变量。内存变量是内存中的一个存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。在VisualFoxPro中,变量的类型可以改变,也就是说,可以把不同类型的数据赋给同一个变量。1)内存变量内存变量又分为用户定义的内存变量(通常简称内存变量)和系统内存变量(通常简称系统变量),此外,还可以使用数组,它是按一定顺序排列的内存变量。内存变量与字段变量不同,它独立于数据库文件而存在,用来保存在命令或程序执行中临时用到的输入、输出或中间数据,由用户根据需要定义或删除。,(2)变量,每一个变量都有一个名字,称为变量名,可以通过变量名访问变量。内存变量命名规则有3条:.以字母、汉字或下划线开头;.由字母、汉字、下划线或数字组成;.长度不超过128个字符。例如,X1、姓名、XM、Name、name_23、_my2002等都是合法的内存变量名。内存变量的数据类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)、日期时间型(T)和S(屏幕型)7种,其类型与所赋值的类型一致。简单内存变量内存变量是内存中的临时单元,当退出VisualFoxPro系统后,内存变量也会与系统一起消失,除非使用内存变量文件来保存内存变量值。在VisualFoxPro中,简单内存变量的赋值和输出,可以使用STORE、=或?命令进行。,数组是一组有序内存变量的集合。或者说,数组是由同一个名字组织起来的简单内存变量的集合,其中每一个内存变量都是这个数组的一个元素,它是由一个以行和列形式表示的数组元素的矩阵。所谓的数组元素是用一个变量名命名的一个集合体,而且每一个数组元素在内存中独占一个内存单元。为了区分不同的数组元素,每一个数组元素都是通过数组名和下标来访问的。与简单内存变量不同,数组在使用之前一般要用DIMENSION或DECLARE命令创建,规定数组是一维数组还是二维数组,数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为1。创建数组的命令格式为:DIMENSION|DECLARE(,),数组创建后,系统自动给每个数组元素赋以逻辑假.F.。例如:DIMENSIONX(3),Y(2,3)命令定义了一个一维数组X与二维数组Y,它们分别有3个元素与6个元素。,X(1)、X(2)、X(3)Y(1,1)、Y(1,2)、Y(1,3)、Y(2,1)、Y(2,2)、Y(2,3),数组,在使用数组和数组元素时,应注意如下问题:在一切使用简单内存变量的地方,均可以使用数组元素。在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。在同一个运行环境下,数组名不能与简单变量名同名。在赋值语句中的表达式位置不能出现数组名。可以用一维数组的形式访问二维数组。系统变量系统变量是VisualFoxPro提供的内存变量,系统变量名都以下划线开头,用于控制鼠标器、打印机等外部设备和屏幕输出格式,或者处理有关计算器、日历、剪贴板等方面的信息。例如:ACTIVATEWINDOWCALCULATOR_CALCVALUE=56.8_CLIPTEXT=面向21世纪教材该命令是将字符串面向21世纪教材存人剪贴板中。,2)字段变量VisualFoxPro中的字段变量的变量名就是表的字段名;字段变量的数据类型,就是表中该字段定义时所规定的数据类型;字段变量的宽度,就是定义表结构时对该字段宽度的定义,有关字段的定义以及有关表结构的建立将在以后介绍。字段变量的操作方法与内存变量的操作方达基本相同、只是字段变量的值来源于表,而内存变量的值则是通过赋值操作赋给的。3)变量的优先级在VisualFoxPro的变量层次中,当内存变量名与字段变量名同名时,系统优先引用字段变量。如果要引用内在变量,可以在内存变量名前加前缀M.(或M-)以示区别。,VisualFoxPro的内存变量与其它高级语言中的变量有所不同,它不需事先说明类型,数据类型是根据当前所存储的数据的类型决定的。因此,必须首先给所使用的内存变量赋一个值,这个变量才可以使用,否则系统返回提示变量未找到!内存变量的赋值【格式1】=【功能】将的值赋予由所指定的内存变量【格式2】STORETO【功能】将的值赋予由所指定的一个或若干个内存变量,4)内存变量及其操作,【注意】.等号一次只能给一个内存变量赋值。STORE命令可以同时给若干个变量赋予相同的值,各内存变量名之间必须用逗号分开。.在VisualFoxPro中,一个变量在使用之前并不需要特别的声明或定义。当用STORE命令给变量赋值时,如果该变量并不存在,那么系统会自动建立它。.可以通过对内存变量重新赋值来改变其内容和类型。例:name=张三name=3STOREname+1TOx,y,z内存变量的输出【格式】?|?【功能】在当前行的光标所在处的下一行或当前行显示各表达式的值。,内存变量的显示【格式】LIST|DISPLAYMEMORYLIKETOPRINTER|TOFILE【功能】.显示或打印输出内存变量工作区的信息,包括己定义的内存变量名称、类型、内容、个数、已占内存总字节数,及剩余的可用内存变量空间。其中LIKE短语指出包括或不包括与通配符相匹配的内存变量。在通配符中可以使用?和*。这里?代表任意一个,*表示任意多个,使用方法同MS-DOS中的用法一致。.LIST为连续滚动显示;DISPLAY为分屏显示。.选用TOPRINT短语时,将结果在显示的同时送往打印机输出。TOFILE将结果存入扩展名为.TXT的文件中。,内存变量的保存与恢复【格式】SAVETOALLLIKE|EXCEPT【功能】将选定的内存变量存储到所指定的内存变量文件中,系统默认的文件扩展名为.MEM【格式】RESTOREFROMADDITIVE【功能】将所指定的内存变量文件中保存的内存变量恢复到内存。选用ADDITIVE短语则保留现行内存变量,再把文件中的变量添加进来。否则,覆盖原有的内存变量。内存变量的清除【格式1】CLEARMEMORY【功能】清除当前内存中全部已定义的内存变量。,【格式2】CLEARALL【功能】为恢复系统初态命令。释放所有内存变量,关闭所有各类文件,包括数据库文件、索引文件、过程文件,并选择1号工作区。【格式3】RELEASE【功能】清除指定的内存变量。【格式1】RELEASEALLLIKE|EXCEPT【功能】选用ALLLIKE短语则只清除与通配符相匹配的内存变量。选用ALLEXCEPT短语则清除除了与通配符相匹配之外的内存变量。,【例】X=1Y=IBM-PCZ=$760.8X1=.T.X2=2002-08-06?X,X1,Y,ZLISTALLLIKEX?SAVETOMYMEMRELEASEALLLIKEX?DISPLAYMEMORESTOREFROMMYMEM,5.表达式,表达式是由数据、数据存储容器和运算符组成的运算式。在用VisualFoxPro编写的程序里,表达式几乎无处不在。大多数命令中都包含表达式语法成分,表达式使这些命令的功能更加灵活、强大。表达式的形式包括:1)单一的运算对象(如常量、变量或函数);2)由运算符将运算对象连接起来形成的式子。无论是简单的还是复杂的合法表达式,按照规定的运算规则均能计算出一个结果,即表达式的值。根据表达式值的类型,表达式可分为数值表达式、字符表达式、日期时间表达式、关系表达式和逻辑表达式5种。(1)算术表达式算术表达式可由算术运算符和数值型常量、数值型内存变量、数值型数组、数值类型的字段、返回数值型数据的函数组成。算术表达式的运算结果是数值型常数。算术运算符及其运算示例如下:,字符表达式可由字符运算符和字符型常量、字符型内存变量、字符型数组、字符型类型的字段和返回字符型数据的函数组成。字符表达式运算的结果是字符常数或逻辑型常数。字符运算符及示例如下:,算术运算符优先级及示例一览表,(2)字符表达式,字符运算符及示例一览表,时间日期表达式可由日期运算符和时间日期型常量、时间日期型内存变量和数组、返回时间日期型数据的函数组成。时间日期表达式运算的结果是时间日期型常数。,(3)时间日期表达式,时间日期运算符及示例一览表,(4)关系表达式,关系表达式可由关系运算符和字符表达式、算术表达式、时间日期表达式组成。其运算结果为逻辑型常量。关系运算是运算符两边同类型元素的比较,关系成立结果为(T);反之,结果为(F)。,关系运算符及示例一览表,当比较两个字符串时,系统对两个字符串自左向右逐个进行较,一旦发现两个对应字符不同,就根据这两个字符的排序序列决定这两个字符串的大小。运算符=和$仅适用于字符型数据,其他运算符适用于任何类型的数据,但前后两个运算对象的数据类型要一致。具体情况是:数值型和货币型数据比较-按数值的大小比较,包括负号。日期或日期时间型数据比较-越早的越小,反之越大。逻辑型数据比较-.T.大于.F.子串包含测试-如果前者是后者的一个子字符串,结果为逻辑真(.T.),否则为逻辑假(.F.)。在用双等号运算符=比较两个字符串时,只有当两个字符串完全相同(包括空格以及位置)时,运算结果才会是逻辑真.T.,否则为逻辑假.F.。在用单等号运算符=比较两个字符串时,运算结果与SETEXACTON|OFF(默认)设置有关。当处于ON状态时,先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行比较。,逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。逻辑运算符的优先级与运算规则如下表所示(也可以省略两端的点,写成NOT、AND、OR):,(5)逻辑表达式,例如,查询工资高于1800的讲师或副教授的条件可写成:工资1800.AND.(职称=“讲师”.OR.职称=“副教授),前面介绍了各种表达式以及它们所使用的运算符。在每一类运算符中,各个运算符有一定的运算优先级。而不同的运算符也可能出现在同一个表达式中,这时它们的运算优先级顺序为:算术运算符、字符串运算符和日期时间运算符关系运算符逻辑运算符。圆括号作为运算符可以嵌套,也可以改变其他运算符的运算次序。圆括号中的内容在与其他运算对象进行种类运算前,其结果首先要被计算出来。有时候,在表达式的适当地方插入圆括号,并不是为了改变其他运算符的运算次序,而是为了提高代码地可读性。,运算符优先级,函数是用程序来实现的一种数据运算或转换。每一个函数都有选定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个结果,称为函数值或返回值。函数的一般形式为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿富汗巴基斯坦交火
- 重庆能源职业学院《统计软件应用实验教学》2025-2026学年第一学期期末试卷
- 美国家庭感恩节致辞时桌子倒塌
- 新乡医学院三全学院《水文学》2025-2026学年第一学期期末试卷
- 七年级历史第一次月考卷含答案(考试版A4)【测试范围:七上1~6课】(贵州专用)
- 2025年武夷学院招聘真题(行政管理岗)
- 首都经济贸易大学《水彩风景名作临摹》2025-2026学年第一学期期末试卷
- 齐齐哈尔医学院《电工电子学》2025-2026学年第一学期期末试卷
- 黄河水利职业技术学院《传统文化概论》2025-2026学年第一学期期末试卷
- 东营科技职业学院《电信工程项目管理》2025-2026学年第一学期期末试卷
- 低年级小学生心理辅导中的主要问题及应对策略
- 2025版粮食仓库安全操作规程
- 医院检验科消防知识培训课件
- 国网南瑞集团招聘考试真题2025
- 堤防工程施工规范(2025版)
- 绿里奇迹课件
- 2025年科创板开户测试题及答案
- 家电维修维护数据管理细则
- 生态文明施工方案
- 肉鸽产业园项目可行性研究报告
- 步兵引导打击课件
评论
0/150
提交评论