序号 |
留言内容 |
D:2011-4-21 T:8:35:00 IP:188.188.2.61
作者: 张顺海 | 上边的程序运行结果:
10 1 100
10 a 100
10 a 100
如果将子程序sub中的priv b,y 改为 priv a,y
那么程序运行结果与答案一致 |
D:2011-4-21 T:8:33:00 IP:188.188.2.61
作者: 张顺海 | 主程序:main.prg
set talk off
set proc to p6-3-1.prg
clea
a=4
b="m1"
m1=5
do sub with b
? a,b,m1
do sub_11 with "m1"
? a,b,m1
retu
过程文件:p6-3-1.prg
proc sub
para x
priv b,y
a=10
b=20
y=1
do whil y
if y>a
exit
else
&x=&x+1
a=a+6-&x
b=a-3
endif
enddo
do sub_11 with x
? a,b,m1
retu
proc sub_11
para b
&b=100
b="a"
&b=10
retu
|
D:2011-4-19 T:17:16:00 IP:192.168.1.200
作者: 张顺海 | 今天的试卷讲评:
一、(请运行下边的程序段,是能正常完成功能的,用不着SKIP,如果加上SKIP对程序也没有实质性的影响)
SET TALK OFF
SET SAFETY OFF
CREATE TABLE x (xm n(2))
CLEAR
FOR i=1 TO 3
APPEND BLANK
@5+i,20 say "请输入第"+STR(i,1)+"个数:" get xm
READ
ENDFOR
CLEAR
list
USE
SET TALK ON
二、关于字符串的运算
运算符有:+和-
a="abcd"
b="efg"
? a+b &&结果为 abcdefg
? a-b &&结果为 abcdefg
a="abcd " &&字符串最后有一个空格
b="efg"
? a+b &&结果为 abcd efg
? a-b &&结果为 abcdefg 前边的空格移到了最后,即"abcdefg "
总结:减号为前边字符串的‘尾随空格移位运算符’,对其他位置上的空格无效。 |
D:2011-4-15 T:13:28:00 IP:188.188.2.61
作者: 张顺海 | SQL语言共分为四大类:
.数据查询语言DQL
.数据操纵语言DML
.数据定义语言DDL
.数据控制语言DCL
1 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块:
SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>
2 数据操纵语言
数据操纵语言DML主要有三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE
3 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象
------- 表 视图
CREATE TABLE/VIEW
4 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
1) GRANT:授权。
2) ROLLBACK 回滚命令使数据库状态回到上次最后提交的状态
3) COMMIT [WORK]:提交。
在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。
(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。
(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。
这些命令是:
ALTER,CREATE,DROP,EXIT,GRANT,QUIT。
(3) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:
|
D:2011-4-15 T:13:11:00 IP:188.188.2.61
作者: 张顺海 | 第五章 VisuallFoxPro程序设计
知识要点:
一、常量和变量
1.常量(字符型常量、数值型常量、日期及日期时间型常量、逻辑型常量、货币型常量)
2.变量(内存变量、字段变量、数组变量、系统变量)
二、常用函数(参见http://192.168.8.40/ch01/vfp8/hanshu.mht)
1.数值型函数(abs()、int()、sqrt()、max()、min()、round()、mod()、exp()、log()、pi())
2.字符型函数(space()、substr()、len()、left()、right()、stuff())
3.日期和时间型函数(date()、time()、datetime()、year()、month()、day()、dow()、cdow())
4.转换函数(str()、val()、upper()、lower()、asc()、chr()、ctod()、dtoc())
5.测试函数(type()、iif()、bof()、eof()、found()、recn()、reccount()、dbf()、sele())
三、表达式
1.数值表达式(+ - * / ** ^)
2.字符表达式(+ -)
3.日期表达式(+ -) D+N D-N D-D
4.关系表达式(> >= < <= <> != # = == $)
5.逻辑表达式(not and or)
混合运算表达式的优先级:
算术运算->字符运算->关系运算->逻辑运算
算术运算的优先级别按一般的算术规则运行,同一级别的运算顺序按从左至右进行,有圆括号的先执行圆括号中的运算。
四、程序文件的建立与运行
1.建立程序文件(程序文件是文本文件)
a.项目管理器-代码-程序-新建
b.命令菜单-文件-新建-程序-新建
c.通过命令:modify command [<程序文件名>]
2.保存程序文件
按组合键:Ctrl+W
按钮:单击工具栏上的‘保存’按钮或‘文件’菜单中的保存命令。
形成的文件扩展文件名为:.prg
运行后,自动生成一个扩展文件名为.fxp的伪编译文件,且执行的优先级比同名的.prg要高,即如果有abc.prg和abc.fxp两个文件,则do abc,优先执行abc.fxp文件。
3.编辑程序文件
可以使用项目管理器选中文件,单击‘修改’按钮。
使用命令:modify command 程序文件名
注:modi comm具有新建新文件功能,也具有打开旧文件的功能。
分号“;”的使用:续行符
星号“*”的使用:整行注解(即注释行,不执行)
末端注释:&&(用于行末注释)
整行注释:*或者note (note后应有一空格)
4.运行程序文件
a.项目管理器中选中程序文件,单击‘运行’按钮
b.菜单方式:程序菜单-运行-选择文件
c.命令执行:do <程序文件名>
五、简单交互式命令
1.wait [信息][to 变量]
2.accept [信息][to 变量]
3.input [信息][to 变量]
注:这三个都是从键盘上获得数据,创建变量,通常用于动态给获得数据。三个命令,各有所长,请同学们区别对待。
区别:接受数据类型不同(C型;C型;CDNL型)、接受数据长度不同(1;<=254;根据类型)、需要不需要回车不同(不需要;需要;需要)、接受C型数据需要不需要定界符(不需要、不需要、需要)
六、程序设计
VisualFoxPro程序分为顺序结构、选择结构、循环结构三种基本的程序结构。
1.顺序结构(自上而下,顺序依次执行)
2.选择结构(根据条件真假选择执行)
3.循环结构(根据条件真假重复执行某段代码)
实例:(数据来源于tushu.dbf)
1.查看某处出版社中的所有图书信息
clear
acce "请输入你要查询的出版社名称" to cbs
sele * from tushu where 版别=cbs
return
2.分析下边的三段程序代码:
1)
clear
input "x=" to x
if x<10
y=x^2+5
else
y=x-7
endif
? "y=",y
return
2)
clear
input "x=" to x
y=x-7
if x<10
y=x^2+5
endif
?"y=",y
return
*以上两段程序代码完成的效果一样吗?哪种易读
3)
clear
use v46
accept "学生学号" to xh
locate for 学号=xh
if found()
do case
case 语文<60
? 学号,语文,"不及格"
case 语文<75
? 学号,语文,"合格"
case 语文<90
? 学号,语文,"良好"
othe
? 学号,语文,"优秀"
endcase
else
? "输入错误,没有这个学号"
endif
return
4)for.....endfor
clear
for i=1 to 100
if mod(i,3)=0
?? i
endif
endfor
return
5)do while .....enddo
clear
use tushu
do whil .not. eof()
if 版别="延边人民出版"
disp
endif
skip
enddo
use
return
6)scan .....endscan
clear
use tushu
scan
if 版别="延边人民出版"
disp
endif
endscan
*注意没有使用skip,说明这个循环有这个功能。
7)循环嵌套(for ....next)配套也可以
clear
for i=1 to 5
for j=1 to i
?? "*"
endfor
?
endfor
return
七、过程与过程调用
1.子程序设计与调用(procedure...endproc)
2.过程文件的打开与关闭
打开:set procedure to 过程文件
关闭:set procedure to或者close procedure
3.过程文件的调用
do <过程文件名>
4.带参数的过程调用
do <过程文件名> with <参数1,1参数2..>
5.带参数的过程
首语句为parameters<参数1,参数2..>
6.变量作用域
a.公共变量 (public)
b.私有变量(不用声明的)
c.本地变量(local)
特殊保护同名变量:private |