当前位置:
文档之家› 2012-1VFP第9部分(数据库及表的基本操作)
2012-1VFP第9部分(数据库及表的基本操作)
学号 001
002 003
姓名 张三
李四 王武
英语 85
70 40
计算机 数学 82
95 70
总分
平均分
76
63 83
方法1:use cj replace all 总分 with 英语+计算机+数学,平均分 with 总分/3 方法2:update cj set 总分=英语+计算机+数学, 平均分=总分/3
(教科书P112)
① 建立一个表单,设置他们的外观尺寸,以形成 Windows软件界面; ② 为表单设置数据环境,数据环境规定表单与数 据表的相关性; ③ 根据软件功能要求,在表单中分配一些控件对 象。原则是美观、清晰、符合操作习惯; ④ 设置每一个控件的关键属性值,如:外观特征、 数据控制源、标题、是否可见等;
(教科书P127)
recall [范围] [for 条件1]
[while 条件2]
3)物理删除表中的记录 (教科书P127)
pack
4)记录清除命令
(教科书P128)
zap
?BOF(),EOF(),RECNO()
与删除相关的命令:(教科书P128)
set deleted on/off
功能:将逻辑删除的记录隐藏或 显示。on为隐藏,off为显示
字字符、空格及其他专用字符)组成,
长度范围是0~254个字符。
2.数值型(Numeric) 数值型数据通常分为以下四种 类型: (1)数值型( N )
(2)浮动型( F )
(3)双精度型( B )
(4)整型( I )
3.日期型(Date)8B 日期型数据是是用于表示日
期 的 数 据 , 用 默 认 格 式
VARTYPE(<表达式>) ------返回<表达式>
的数据类型
返回的字 母 C N
(见教科书第45-46页)
数据类型 返回的字 母 G D 数据类型
字符型或备注型 数值型、整型、浮点型 或双精度型 货币型 逻辑型 对象型
通用型 日期型
Y L O
T X U
日期时间型 Null值 未定义
基于数据表的表单设计方法
表单执行后, ①选择一用户名,输入密码,如果密码正确(与 数据表中的密码字段对应),单击“进入系统” 按钮,可以调用系统主菜单“图书管理系统菜 单.MPR”(该菜单的设计在第8章完成);
②如果密码不正确,最多允许输入3次,每次给出 错误提示,如果3次均不正确则直接退出系统,返 回操作系统;
③单击“退出”按钮,可以退出本系统,返回操 作系统。 (教科书P110-111事件代码)
",4+32+256,"确认")
if choice=6 endif
单击“是”按钮,函数值为6 append blank
thisform.refresh
用SQL命令添加记录
命令格式:
(见教科书124页)
insert into <表文件名>…
用INSERT命令插入记录 (见教科书124页)
命令格式:
insert into <表文件名>…
(教科书P121)
bof()
文件开始的测试函数 文件结束的测试函数
eof()
的值为:
在一个空表中,bof( )和eof( )
;recn( )的值为
。
在一个空表中,bof( )和
eof( )的值为:.T.;
recn( )的值为1。
利用命令进行记录定位:绝对定位
和相对定位 1. 绝对定位
(教科书P119)
数据类型
(见教科书96页)
数据类型一旦被定义,就确定了
其存储方式和使用方式。
Visual FoxPro系统将数据细化 分为以下几种类型:
1.字符型(Character) 字符型数据描述不具有计算
能力的文字数据类型,是最常用的
数据类型之一。 字符型数据是由汉字和ASCII
字符集中可打印字符(英文字符、数
⑤ 设置表单中各个控件的默认操作顺序; ⑥ 设计对象的事件驱动程序,也就是这些事件 一旦发生,将完成什么功能; ⑦ 将其他的菜单、工具栏与表单联系在一起, 用一个主程序驱动,就构成一个完整的 Windows应用程序。
(教材P108) 【例4-10】建立如表4.4所示的数据表: 管理员.dbf,设计如图所示的系统图书管理系统的登 录表单。将表单中的组合框与数据表中的用户名字段 绑定。
命令格式:SQL命令更新记录
update <表名> set…
(教科书P130) 例如,在读者表中,将编号为“d0008”读者的联 系电话改为027-3219666。 执行如下命令: UPDATE 读者 SET 联系电话="027-3219666" WHERE 读者编号="d0008"
例:计算cj.dbf的总分和平均分
在表单空白处单击 右键,在快捷菜单中选 择“数据环境”,弹出 “打开”对话框,选择 管理员.dbf,单击“确 定”按钮,在弹出的 “添加表或视图”对话 框中可以选择并添加多 个数据表,在这里我们 选择“关闭”按钮,则 数据表成功添加到表单 中,如图所示。
〖温馨提示〗在该对话 框中可以只选择姓名字 段,或只选择管理员编 号,为了避免错误的选 择管理员,最好两个字 段都选择。
第八、九讲
数据库数据表的基本操作
要点:
1.掌握表中的数据类型 2.掌握基于数据表的表单设计方法 3.掌握数据表中指针定位命令、 数据的更新命令、数据删除命令 4.掌握索引排序、永久关系及临时关系的 建立 5.了解记录数据与数组之间的传递
注意:第九讲上课前首先解决建库建 表中的问题及学生在自学中遇到的问 题,然后评讲自学课件中的习题
(默认)。
〘例5-4〙打开“读者信息维护”表单,进一步完 善表单的功能,实现“删除读者”、“清除标记”、 “物理删除”按钮的功能。
Command2命令按钮的click事件代码如下: delete thisform.refresh Command3命令按钮Click事件代码如下: recall thisform.refresh Command4命令按钮Click事件代码如下: choice=messagebox("确认删除所有已经逻辑删 除的记录“ , 4+32+256 , "确认") if choice=6 pack endif thisform.refresh
通常情况下, ①文本框、组合框等可以作为输入 类的控件; ②标签、文本框、编辑框、列表框、 表格、图像、Active绑定控件等作为输 出类的控件; ③命令按钮、命令按钮组、复选框、 选项按钮组、计时器可以作为控制类的 控件。
数据表中记录指针的定位
在Visual FoxPro 系统环境下, 表中的每一列数据是通过字段名来 标识的,而每一行数据是通过记录 号来标识的。
在Visual FoxPro 系统内部,有一 个用以确定当前记录的记录指针,记录 指针指向哪一个记录,这一个记录就是 当前操作的记录,即当前记录。当表打
开时,当前记录为第一个记录。可以用
函数recno()来测试当前记录号。 记录号测试函数
recno()
(教科书P121)
每一个数据表都有开始和结束标 志,可以用函数bof()和eof()来测试。
6.通用型(General)
4B
通用型数据是用于存储OLE对象的数 据。通用型数据中的OLE对象可以是电子 表格、文档、图片、声音等多媒体信息。 它只用于数据表中的字段类型的定义。 实际数据被存放在与数据表文件同名 的备注文件(其扩展名为:.fpt)中, 实际数据长度仅受限于现有的磁盘空间。
注意: 一个表文件的备 注型数据和通用型数据都 放在同一个与表文件同名 的备注文件(.fpt)中
{mm/dd/yy}来表示。其中mm代表
月,dd代表日,yy代表年。
4.逻辑型(Logic)
1B
逻辑型数据是描述客观事物真
假的数据,用于表示逻辑判断结果。 逻辑型数据只有真(.T.)和
假(.F.)两种值。
5.备注型(Memo)
4B
备注型数据用于存放较长的字符型数据 类型。 它只用于数据表中的字段类型的定义, 而实际数据被存放在与数据表文件同名的 备注文件(其扩展名为:.fpt)中,长度 根据数据的内容而定。
表数据与数组之间的数据传送
1. 将记录传送到数组
命令格式: (教科书P30-131)
scatter [fields <字段名表>] [memo]
to <数组名>
将当前记录的字段值按<字段名表>的顺序 依次送入数组元素中。
2. 将数组的数据传送到记录
命令格式:
gather from <数组名> [fields <字段 名表>] [memo]
示的内容。
2. 相对定位
(教科书P120-121)
skip [<数值表达式>]
〘例5-2〙 打开〘例5-1〙的图书信息.scx表单, 进一步完善表单的功能,实现“上一条”、“下 一条”按钮的功能,使得表单上能够逐一查看 “图书”表的所有记录。
修改Commandgroup1命令按钮组click事件代码,为 原多分支case语句增加两个判断分支,代码如下: case this.value=2 skip -1 表示第2、3个按钮: bof()函数为.t.,表示指 if bof() 上一条、下一条 针指到开始位置 go top messagebox("已经是第一条记录。") endif case this.value=3 skip eof()函数为.t.,表示指针 if eof() 指到结束位置 skip -1 messagebox("已经是末记录。") endif