版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章数据库管理系统概述2.1、VFP的集成操作环境2.1.1VFP操作界面菜单栏工具栏主窗口“命令”窗口状态栏
2.1.2VFP命令的语法格式说明1.命令的表述按如下约定:斜体字
该部分是命令的语法成分,由用户定义方括号“[]” 可选项
省略号“…” 前一语法成分可重复多次竖线“|” 前一语法成分选择其一例:DELETEFILE[FileName|?][RECYCLE]
在命令窗口和程序中都使用分号“;”实现换行输入,绝大多数命令中的关键字和函数名均可用前4个字符代替。2.几个常用命令:1、*和&&2、?和??3、CLEAR4、DIR5、MD/RD/CD6、COPYFILE/RENAME/DELETEFILE7、RUN8、QUIT2.1.3配置VFP操作环境“选项”对话框常用的SET命令(P34表2-1)六、VFP文件类型
P35表2-22.3VFP的项目管理器及操作一、项目项目:是文件、数据、文档和 VFP对象的集合项目文件:.PJX/.PJT二、创建项目文件的方法使用命令CREATEPROJECT<项目文件名>;使用“文件”菜单或“常用”工具栏中的新建命令。三、项目管理器是VFP中处理数据和对象的主要组织工具;是VFP的“控制中心”。四、项目管理器的定制窗口形式工具栏形式浮动的选项卡五、管理项目中的文件和对象用“选项卡”分类显示项目中各类型数据项用“项列表”查看项目中的内容向项目中新建、添加和移去文件为项目中的文件添加说明2.4VisualFoxPro语言基础2.4.1数据类型所有的数据都有其所属的类型。类型就是对数据的允许取值及这个值的范围进行的说明。字段类型——指创建表文件时,定义表结构中每一个字段的类型。数据类型——在表达式、数组、变量中允许使用的数据类型。有些类型只能在字段中使用:浮点、双精度、整型、备注型、通用型、二进制字符型、二进制备注型有些类型在字段和数据中都可使用:字符型、货币型、日期型、日期时间型、数值型、逻辑型
2.4.2数据存储容器一、名称命名规则变量名、字段名、数组名、自定义函数名、过程名等等,都必须符合下列规则:(1)只能包含字母、下划线和数字。(2)名字的开头只能是字母或下划线。(3)表的字段名、索引标识名只能有10个字符长,其他名字的长度在1~128个字符之间。(4)不要使用VFP的保留字。文件名要遵守运算系统的规定二、常量
常量时指在整个运算过程中其值保持不变的量。字符型(C)——用英文半角的单引号、双引号或方括号括起来的字符,如: ’abc’、”A123”、[1234]、’河海大学’数值型(N)——数字串,如:123.45、
-0.0023、+21逻辑型(L)——逻辑值只有两个:
.T..t..Y..y.和.F..f..N..n.(真和假)日期型(D)——表示日期或日期时间的量如:{09/01/2000}、{08/28/200016:20:00}、{}注:关于日期格式的设置,在“工具”菜单的“选项”中的“区域”标签货币型(Y)——表示货币的量,使用时要在数字前加符号“$”,如:
C=$2789.12定义编译时常量(符号常量):格式:
#DEFINE常量名数据例如:
#DEFINEPI3.1415926 #DEFINEHH“河海大学”
编译时常量用于程序中,而且在程序中的编译时常量不能再用作变量名,不能再对它赋值。三、变量 变量代表内存中的一个存储单元,所以也称为内存变量,其数据类型由其存放的数据来确定。1、变量的创建格式1:
STORE数据值
TO变量名格式2:
变量名=数据值赋值号例:A=123.45
&&A为数值型变量,其值为123.45B=‘hehai’
&&B为字符型变量
C=.T.
&&C为逻辑型变量D={09/01/2000}
&&D为日期型变量STORE”VFP”TOAA,BB,CC &&产生3个字符变量2、控制变量访问 内存变量用于程序中,可以使用相应的命令指定变量的作用域。(1)用LOCAL指定局部变量 局部变量只能在当前程序中使用,当它们所属的程序运行结束后,局部变量被释放。(2)用PRIVATE指定私有(隐藏)变量
PRIVATE可以把上层变量(调用程序中定义的变量)的值在当前程序中隐藏起来,用户在当前程序中可以正常使用和这些变量同名的变量。(3)用PUBLIC指定全局变量
全局变量在程序运行的全过程中,其值均不会丢失。
在命令窗口中创建的任何变量被自动赋予全局变量。存储数据的作用域在VFP中,若变量和字段同名,则字段具有更高的优先权。可在变量名前加上m.或m->前缀来引用变量,例如:
xm=3.14
usejs
?xm
&&输出字段xm的内容;
?m->xm
&&输出变量xm的值(3.14);
?M.xm
&&输出变量xm的值(3.14);3、访问变量注意
4、内存变量的保存与恢复 内存变量是系统在内存中设置的临时存储单元,当退出VFP时其数据自动丢失。若要保存其值,可用SAVETO命令将变量保存到文件中,命令格式如下:SAVETO内存变量文件名[ALLLIKE变量名通配符|ALLEXCEPT变量名通配符]其中:ALLLIKE子句指定需保存的变量,ALLEXCEPT子句指定不需保存的变量。缺省ALLLIKE或ALLEXCEPT子句时,表示保存当前所有的内存变量。
内存变量文件的扩展名为.mem例:SAVETOMvarALLLIKE?Yan*RESTOREFROM命令可将保存到文件中的变量恢复到内存:RESTOREFROM内存变量文件名[ADDITIVE]其中:ADDITIVE子句将文件中的内存变量追加到当前内存中来,否则,当前内存变量被清除。四、数组(Arrays) 数组是变量的有序集合,占用连续的存储单元,组成数组的变量称为数组元素,也叫做下标变量。1、数组说明
数组必须先说明后使用 说明方式有:(1)DECLEAR数组名(行数[,列数])例:DECLEARA(2,3)
&&定义二维数组A,
它有2行3列共6个元素,且是私有数组。(2)DIMENSION数组名(行数[,列数])例:DIMENSIONB(10)
&&定义一维数组B,它有10个元素,且是私有数组。(3)PUBLIC数组名(行数[,列数])例:PUBLICM(5)
&&定义一维数组M,它有5个元素,而且是全局数组(4)LOCAL数组名(行数[,列数])例:LOCALN(8)
&&定义局部一维数组N,它有8个元素2、为数组赋值数组在说明以后,每个元素都有逻辑假值.F.
,可用赋值语句为其赋值。(1)为数组元素赋值例:DIMENSIONA(2,3)A(1,3)=24A(2,2)=‘张三’没有赋值的数组元素的值仍为.F.。(2)为数组整体赋值
A=0
&&所有数组元素的值均为0
B=
'VFP6.0
'&&B数组所有数组元素的值均为'VFP6.0'2.4.3函数
1、函数的作用2、函数的分类(系统,自定义)3、函数的三要素:
功能与名称;
自变量的类型,个数,位置;
函数的值及值的类型。4、常用函数介绍;注意每个函数的作用,返回值。
函数分类:系统函数和用户自定义函数函数格式:函数名([参数1[,参数2[,…]]])一、常用函数
1.数值函数
(1)ABS()函数功能:求绝对值例如:?ABS(-3)显示结果:3(2)MAX()函数和MIN()函数功能:求最大值和求最小值例如:?MAX(3,5,7)
显示:7
例如:?Min(3,5,7)
显示:3(3)INT()函数功能:取整例如:?INT(3.3)
显示:3
?INT(3.5)
显示:3
?INT(-3.5)
显示:-3(4)MOD()函数功能:取余
例如:?MOD(10,3)
显示:1
?MOD(25.250,5.0)
显示:0.250
说明:被除数的小数位数决定了返回值中的小数位数。?MOD(23,5)
显示:3
?MOD(-23,-5)
显示:-3说明:被除数与除数符号相同时,返回值中的符号与除数相同。?MOD(23,-5)
显示:-2
?MOD(-23,5)
显示:2说明:被除数与除数符号不同时,先求余,符号与被除数相同,所得结果再加上除数即为最终返回值。(5)ROUND()函数功能:从该位四舍五入
例如:setdecimalsto4&&小数位为4位
setfixedon&&固定显示小数位
CLEAR
?ROUND(1234.1962,3)
显示:1234.1960
?ROUND(1234.1962,-1)
显示:1230.0000
说明:若小数位数为负数,则结果在小数点左端包含指定个零。(6)SQRT()函数功能:求平方根
例如:?SQRT(16)
显示:4.00(7)RAND()函数功能:返回0~1之间的随机数。例如:?RAND()
显示:0.85或0.55等(1)ALLTRIM()函数
功能:删除字符表达式的前后空格。例如:s=〃VFP〃?ALLTRIM(S)
显示:VFP
2.字符函数LTRIM()函数功能:删除字符表达式前面的空格。例如:s=〃VFP〃?ALLTRIM(S)
显示:VFPRTRIM()与TRIM()函数功能:删除字符表达式后面的空格。例如:s=〃VFP〃?ALLTRIM(S)
显示:VFP(2)AT()函数
功能:返回一个字符表达式或备注字段在另一个字符表达式或备注字段中出现的位置。缺省为1,未出现返回值为0。例如:STORE"Iamastudent"toS?AT("t",S)
显示:9?AT("t",S,2)
显示:14
注意:此函数区分大小写。
ATC()函数不区分大小写。(3)LEN()函数
功能:返回字符表达式的值中字符的数目。例如:s=〃VFP〃?LEN(S)
显示:3(4)SUBSTR()函数
功能:取字符串中的子串
SUBSTR(字符串,开始位置n,取m个)结果:字符串。例:substr(‘abcdef’,2,3)‘bcd’
substr(‘中国江苏南京210098’,5,8)‘江苏南京’第n个汉字的位置:2*n-1
substr(‘中国江苏南京210098’,5)
结果为:江苏南京210098C型N型N型结果是C型(5)LEFT()函数功能:左截指定数目的字符。例如:s=〃VisualFoxPro〃?LEFT(S,6)
显示:VisualRIGHT()函数功能:右截指定数目的字符。例如:s=〃VisualFoxPro〃?RIGHT(S,6)
显示:FoxPro(6)
SPACE()函数功能:返回指定数目的空格。例如:?SPACE(2)显示:2个空格3.日期/时间函数(1)
DATE()函数功能:返回系统日期。例如:?DATE()
显示:03/03/09
setcenturyon?DATE()
显示:03/03/2009
TIME()函数功能:以24小时制、8位字符串格式返回系统时间。例如:?TIME()显示:14:47:22DATETIME()函数功能:返回系统日期和时间。例如:?DATETIME()显示:03/03/0902:47:22PM(2)
YEAR()函数功能:返回该日期的带世纪的年份。例如:?YEAR(DATE())
显示:2009数值型
MONTH()函数
功能:返回该日期的月份值。例如:?MONTH(DATE())
显示:3数值型
DAY()函数功能:返回该日期是某月中的第几天。例如:?DAY(DATE())
显示:3数值型(3)DOW()函数
功能:返回该日期是一周的第几天。
第一天为星期日例如:?DOW(DATE())
显示:7数值型4.数值类型转换函数(1)ASC()函数功能:返回字符表达式中最左边字符的ASCII值。
例如:?ASC(〃ABCD〃)
显示:65数值型(2)CHR()函数功能:返回以该值为ASCII值所对应的字符。例如:?CHR(65)
显示:A字符型(3)VAL()函数功能:把数值型的字符串转换成对应的数字。例如:?VAL(〃12〃)
显示:12.00
?VAL(〃1.25E3〃)*2
显示:2500.00数值型?VAL(〃abc〃)
显示:0.00(4)DTOC(日期表达式)功能:把日期型转换成字符型。例如:?DTOC({^2005-10-08})
&&返回字符串显示:10/08/05?DTOC(DATE(),1)
显示:20090303&&参数“1”指定以年月日顺序且无分隔符的形式返回字符型日期
TTOC(日期时间表达式)功能:把日期时间型转换成字符型。例如:?TTOC(DATETIME())
&&返回字符串显示:03/03/0902:47:22PM
?TTOC(DATETIME(),2)
显示:02:47:22PMCTOD(字符表达式)功能:把字符型转换成日期型。例如:?CTOD(〃11/15/05〃)
&&返回日期值11/15/05CTOT(字符表达式)功能:把字符型转换成日期时间型。?CTOT("07/08/05")
显示:07/08/0512:00:00AM
(5)STR(数值表达式,长度[,小数位])功能:把数值表达式转换为字符串。?STR(314.15)
&&没有指定总宽度和小数位数;取整数;默认宽度取10,结果:“
314”?STR(314.15,5)&&总宽度5,没有指定小数位数,取整数;前导2个空格。结果:“314”?STR(314.15,5,2)
&&总宽度5,小数位数2,宽度不够,首先保证整数。结果为"314.2"?STR(314.15,2)
&&结果为“**”,总宽度为2,小于整数部分宽度,溢出?STR(1234567890123)&&结果为“1.234E+12"5.其他常用函数(1)BETWEEN()函数
功能:判断一个表达式的值是否在另外两个相同数据类型的表达式的值之间,返回值为.T.或.F.或NULL。例如:?BETWEEN(3,14,15)
显示:.F.
?BETWEEN(〃a〃,〃A〃,〃b〃)
显示:.F.
?BETWEEN(〃A〃,〃a〃,〃P〃)显示:.T.(2)
INKEY()函数功能:返回一个键码值,该值对应于键盘缓冲区中第一个按键操作。例如:?INKEY(20)
在20秒内按回车键,则显示13
?INKEY(0)按空格键,则显示32(3)
TYPE()函数功能:返回表达式值的类型。
例如:?TYPE(`(12*3)+4`)
显示:N
?TYPE(`DATE()`)
显示:D
?TYPE(`"ABC"`)
显示:C
?TYPE(`S=42`)
显示:U
表达式必须用引号(4)
IIF()函数
功能:根据逻辑表达式的值返回两个值中的一个。例如:?IIF(DOW(DATE())=1ORDOW(DATE())=7,`今天休息`,`今天上班`)(5)
DISKSPACE()函数
功能:返回默认磁盘驱动器上可用的字节数。例如:SETDEFAULTTOA:?DISKSPACE()(6)
FILE()函数
功能:测试辅助存储器上是否存在指定的文件。例如:?
FILE(`A:\DATA\JS.DBF`)
若有,返回.T.,否则,返回.F.(7)
MESSAGEBOX()函数
功能:显示一个用户自定义对话框。例如:?MESSAGEBOX(“你喜欢学习VFP吗?”,4+32,“计算机课程”)注意返回值(8)
GETFILE()函数功能:显示“打开”对话框,并返回选定文件的名称。例如:?GETFILE("dbf","表文件名")2.4.4运算符与表达式VFP的运算符1、字符运算符2、日期与日期时间运算符3、逻辑运算符4、关系运算符5、数值运算符6、混合运算的优先级别一、字符运算符+运算符:
2个字符串相加,即把2个字符串连接成一个字符串。例:?‘VISUAL’+‘FOXPRO’
显示:
VISUALFOXPRO-运算符:
2个字符串相减,也就是把2个字符串连接起来,将前一个字符串的尾空格移到最后。例:?‘VISUAL’-‘FOXPRO’显示:
VISUALFOXPRO$运算符:
判断前一个字符串是否包含在后一个字符串中,返回逻辑值。例:?‘XYZ’$‘ABCXYZWT’显示:
.T.二、日期运算符一个日期值可以加上或减去一个整数,得到的是另一个日期。 两个日期值可以相减,得到的是两个日期相隔的天数。
例:
D1={^2000/07/12} D2={^2000/08/28}&&给D1和D2两个日期变量赋值
?D2-D1
&&(28+31-12)显示:47&&两个日期相隔的天数是47天
?D1+20
&&(12+20-31)显示:08/01/2000&&距离D1日期以后20天是8月1日三、逻辑运算符
逻辑运算符用于逻辑型数据的运算,运算结果为逻辑值。逻辑运算符共有3个:NOT或!
逻辑非AND
逻辑与OR
逻辑或例:“基本工资在500和1000之间”可写成:
JBGZ>500ANDJBGZ<1000不能写成:
500<JBGZ<1000四、关系运算符关系运算符用于同类型数据的比较运算,结果为逻辑值。关系运算符共有7个:>(大于)、 <(小于)、=(等于)、>=(大于或等于)、<=(小于或等于)、<>或#或!=(不等于)==(精确等于)例:
JBGZ>500
&&字段JBGZ为数值型,可以与500比较大小姓名=‘张三’
&&字段姓名为字符型,可与字符型数据比较XS.XH=‘990101’
&&判断学号是否等于990101
在VFP中,数值可以比较大小,字符和汉字也可以比较大小。VFP中系统默认字符序列是拼音序列,即对于西文字符,由小到大是空格、数字、小写字母、大写字母,汉字是按拼音排序大小。例如:
?‘ABCE’>’ABDEFG’
&&返回.F.
?‘人文学院’>‘工商学院’
&&返回.T.(1)SETANSION/OFFSETANSION将在较短的字符串后面加入空格,使它与较长的字符串等长,然后再比较大小。SETANSIOFF规定不在短字符串后加空格,两个字符串只比较到短字符串为止。VFP系统有两条设置命令用于关系运算:(2)SETEXACTON/OFF SETEXACTON
为精确比较,即参加比较的两个字符串必须完全相同,才返回逻辑真值;SETEXACTOFF(默认值)为不精确比较,必须是右端表达式结尾前的每个字符相匹配才相等,其值才为逻辑真值。例如:
当SETEXACTON
?‘ABCDE’=‘ABC’&&.F.?‘ABCX’=‘ABCX’&&.T.
当SETEXACTOFF
?‘ABCDE’=‘ABC’&&.T.?‘ABC’=‘ABCDE’&&.F.
五、数值运算符数值运算符也称算术运算符,其运算规则与数学中的法则相同,即先乘方、再乘除、后加减,括号优先。其中,%为求模运算,或称为求余运算,例如:?12%5
&&求12被5除的余数,结果为2判断整数M能否被整数N整除的表达式为:IFM%N=0各种运算符之间的优先级为:
算术运算符—>关系运算符—>
逻辑运算符,括号可以改变运算顺序。特别注意:运算的数据类型的匹配!例如,设X=2,Y=6,Z=8,则表达式:
X+Y>=ZANDX*Y<2*Z
的值为.T.表达式:
MOD(Y+Z,3)<=XORX**2+3>=Z的值为.T.表达式1、表达式的构成2、各种表达式3、“名称表达式”与“宏替换”
表达式是由运算符、变量、常数、函数、字段名等组成的式子。1、字符型表达式字符型表达式是由字符运算符连接起来的式子。例如:?“教师”+js.xm+“的基本工资是:”-str(js.jbgz,7,2)
(常量)(C型字段)(常量)返回字符值的函数
字符串的运算,结果为字符串注意表达式中运算分量的类型匹配。2、日期表达式日期表达式是由日期运算符连接起来的式子。例如:
DATE()+203、算术表达式由算术运算符连接起来的式子。例如:
JS.JBGZ*1.24、逻辑表达式由逻辑运算符连接起来的式子。逻辑表达式只有.T.和.F.两个值。例如:
XS.XIMING=‘计算机系’ANDXS.XB=‘男’5、名称表达式
名称表达式是由圆括号括起来的字符表达式,它可用来替换命令和函数中的名称(如字段名、变量名、窗口名、菜单名、文件名和对象名等)。(1)用名称表达式替换变量名
N=100M=‘N’
&&注意不要用中文的引号
STORE123.45TO(M)
用名称表达式替换变量名N
&&注意不能用赋值号=?N
&&结果为123.45
实际上对变量N两次赋值。(2)用名称表达式替换文件名
DNAME=‘XS.DBF’USE(DNAME)
(3)用名称表达式作为函数的参数
例1: ST1=‘VISUALFOXPRO’
ST2=(ST1)
?SUBSTR((ST2),1,6)
&&结果为VISUAL例2:
Q1=‘1000’
?VAL(Q1)
&&字符串‘1000’转为数值1000.00(4)用字符表达式构成一个名称表达式
DBN=‘JXSJ’DBFN=‘XS’USE(DBN+’!’+DBFN)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年海水养殖中国对虾行业跨境出海战略分析研究报告
- 2026年河南对外经济贸易职业学院高职单招职业适应性测试参考题库有答案解析
- 2026年苏州健雄职业技术学院单招综合素质考试备考试题附答案详解
- 融合传播未来方向-洞察与解读
- 火星车自主控制-洞察与解读
- 驾驶辅助决策支持-洞察与解读
- 页岩气高效开采技术-洞察与解读
- 老龄化康复需求-洞察与解读
- 欧美电商市场整合-洞察与解读
- 2026重庆市綦江区中峰镇招聘公益性岗位8人笔试参考题库及答案解析
- 钢踏步施工方案(3篇)
- 2025年网格员招聘笔试题库含答案
- 4下4单元第10课《我们当地的风俗》
- 少年成长中心运营方案
- 医学影像专业的毕业论文
- DB63∕T 1987-2021 干拌水泥碎石桩施工技术规范
- 警务实战执法用语课件
- 新能源材料与器件制备技术 课件 第5章 锂离子电池正极材料
- 2025年湖南省高考化学真题卷含答案解析
- 2023-2025年高考物理试题分类汇编:电磁感应解析版
- 外科手术病历书写规范与要点
评论
0/150
提交评论