VF数据库实验报告

更新时间:2024-07-08 08:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一

任务一 熟悉Visual FoxPro6.0的工作环境 任务二 自由表的基本操作及常用命令子句 一、目的和要求

1. 了解Visual FoxPro6.0的基本特点、界面操作方式和命令操作方式。

2. 熟悉Visual FoxPro6.0的辅助设计工具(向导、设计器、生成器、项目管理器)的操

作和作用。

3. 掌握自由表的创建、表结构的修改。 4. 了解内存变量与字段变量的使用。 5. 掌握表达式的计算与使用。 6. 掌握常用函数的使用。

二、实验原理

2.1熟悉Visual FoxPro6.0的工作环境 2.1.1 Visual FoxPro6.0的主要特点

1. 强大的查询与管理功能:近500条命令,200余种函数;查询快速(采用Rushmore技术);管理高效(项目管理器),开发、维护方便; 2. 引入“数据库表”的概念,在建表时就同时定义它与库内其他表之间的关系; 3. 扩大了对SQL语言的支持;

4. 大量使用可视化的界面操作工具(向导、设计器、生成器、工具栏、快捷菜单); 5. 既支持结构化程序设计,也支持面向对象的程序设计;

6. 支持OLE(对象链接与嵌入)技术,易于与其他应用软件共享数据,实现集成; 7. 支持网络应用:支持客户/服务器结构(C/S);可以通过本地或远程视图访问和修改数据;可以控制数据共享功能。

2.1.2 Visual FoxPro6.0采用图形用户界面

Visual FoxPro6.0的图形用户界面也称WIMP界面:W→Windows(窗口),I→Icons(图标),M→Menus(菜单),P→Pointing device(指点式输入设备)。

2.1.3 Visual FoxPro6.0的操作方式:

一、界面操作方式

1)鼠标操作:单击,双击,拖动;

2)窗口操作:打开窗口(命令,工具,菜单),关闭,移动,改变大小,最大化,最小化; 3)菜单操作:下拉式菜单(选定子菜单→选定菜单命令),可以用鼠标,也可以用键盘;快捷菜单操作(单击鼠标右键打开,左键关闭);

4)对话框操作:按钮;文本框;选择框(⊙表示单选钮选中,?表示复选框选中);列表框;

组合框(通过单击文本框右侧的按钮可以控制列表框的收起与展开);微调控件(增1

1

减1)

二、命令操作方式

Visual FoxPro6.0的命令操作方式可以是交互式的命令操作,操作方便,执行速度低,也可以是将Visual FoxPro6.0的命令编成程序文件调用执行,以减少用户的介入,执行效率高,可重复执行,对使用者要求低。

2.1.4 Visual FoxPro6.0的辅助设计工具

向导是一种快捷设计工具,它通过一组对话框依次与用户对话,引导用户分步完成VFP的某项任务。

设计器是比向导功能更加强大的用于创建或修改VFP应用程序构件(比如表、表单)的工具,设计的对象包括数据文件和VFP文档两大类。

生成器是在VFP应用程序的构件中生成并加入某类控件(比如组合框、列表框),VFP6.0提供10种生成器。

在Visual FoxPro6.0中,项目管理器一方面通过项目文件对项目中的数据和对象进行集中管理,另一方面借助界面十分友好的集成环境,使用户能够方便地访问VFP提供的工具栏、快捷菜单和各种辅助设计工具。

2.2自由表的基本操作及常用命令子句

在Visual FoxPro6.0中,数据表分为自由表和数据库表两种。本实验中练习的是自由表的创建。在创建数据表时,可以在一个打开的数据库中创建,也可先建立一个自由表,然后再把它添加到数据库中。无论是数据库表还是自由表,既可用表设计器创建,也可用表向导创建。

创建数据表时,二维表标题栏的列标题是表的字段,标题栏下方的内容输入到表中成为表的数量,每一行称为表的一个记录。建立表结构就是定义各个字段的属性,基本的字段属性包括字段名、字段类型、字段宽度和小数位等。

Visual FoxPro6.0定义了13种字段类型和3种变量类型,另外还有数组。Visual FoxPro6.0还定义了一些标准函数,函数名、参数、函数值是函数的三大要素。按函数功能可将函数划分为:字符处理函数、数学运算函数、转换函数、日期函数、测试函数、环境函数、键处理函数、数组函数、窗口函数、菜单函数和其他类型等。

Visual FoxPro6.0的运算符共有4类,即算术运算符、关系运算符、逻辑运算符、字符串运算符,它们各有其运算优先级。

Visual FoxPro6.0规定,用运算符将常量、变量、字段、函数连接起来的式子为VFP表达式。按照值的数据类型,表达式可分为6种,在表达式中进行表达式的运算时,应严格按照运算的优先顺序进行。

Visual FoxPro6.0命令常用子句的命令格式:

LIST|DISPLAY [[FIELDS] <表达式表>][<范围>][FOR <条件>][WHILE <条件>] [OFF] [ TO PRINT [PROMPT]|TO FILE <文件>]

范围子句有:

ALL 所有记录

NEXT 从当前记录起的N个记录 RECORD 第N个记录

REST 从当前记录起到最后一个记录止的所有记录

2

三、实验内容及步骤

3.1熟悉Visual FoxPro6.0的工作环境

1. 双击打开Visual FoxPro6.0的程序图标,打开Visual FoxPro6.0的开发环境。 2. 熟悉Visual FoxPro6.0的程序窗和命令窗,联系各工具栏的使用。 3. 试使用应用程序向导创建一个简单程序,熟悉对话框、向导的使用方法。

3.2自由表的基本操作及常用命令子句

1. 打开Visual FoxPro开发环境,建立自己的工作目录。

2. 使用表设计器,建立设备表sb,部门代码表bmdm和增值表zz,使用建表命令建立大修表dx。输入数据,可以在建立表结构时输入,也可以在浏览窗口追加与删除记录。

3

3. 使用表设计器修改表结构。

打开要修改的表,单击“显示”中的“表设计器”即可对表结构进行修改。如下Bmdm中插入新字段:

4. 使用表向导修改表结构。

单击“文件”——“新建”——“表”——“向导”打开如下框,添加Dx表即可对表进行修改

5. 输入如下语句,观察运行结果。

s='VFP'

STORE 2*4 TO n1,n2,n3 ? 'S=',s

运行结果:S=VFP

4

6. 1)显示sb表的前3条记录; USE e:\\vf表\\sb.dbf EXCLUSIVE list next 3

2)列出1995年前所启用设备的编号、名称、价格与启用日期。USE e:\\vf表\\sb.dbf EXCLUSIVE

list 编号,名称,价格,启用日期 for year(启用日期)<1995

7. 简述LIST的输出结果。

x1=8 * 4 x2=\xy=.t. xz={96/12/30}

LIST MEMORY LIKE x? RELEASE x1,x2 LIST MEMORY LIKE x?

8. 建立习题2-1的商品表SP.DBF,表结构和数据如下。

表文件结构:

字段名 类型 宽度 小数位数 货号 字符型 6 品名 字符型 8 进口 逻辑型 1

5

单价 数值型 7 2 数量 数值型 2 0 开单日期 日期型 8 生产单位 字符型 16 备注 备注型 4 商标 通用型 4 记录数据:

货号 品名 进口 单价 数量 开单日期 生产单位 备注 商标 LX-750 影碟机 T 5900.00 4 96/08/10 松下电器公司 YU-120 彩电 F 6700.00 4 96/10/10 上海电视机厂 AX-120 音响 T 3100.00 5 95/10/11 日立电器公司 DV-430 影碟机 T 2680.00 3 96/09/30 三星公司 调价涨 FZ-901 取暖器 F 318.00 6 6/09/05 富利电器厂 LB-133 音响 T 4700.00 8 95/12/30 索尼公司

SY-701 电饭锅 F 258.00 10 96/08/19 爱德电器厂 属改进型 NV-920 录放机 T 1750.00 6 96/07/20 先锋电器公司

9. 操作表SP.DBF,完成如下练习。 1) 显示第5个记录;

USE e:\\vf表\\sp.dbf EXCLUSIVE LIST RECORD 5

2) 第3个记录开始的共5个记录; GO 3 LIST NEXT 5

6

3) 把第3个记录到第5个记录显示出来; GO 3 LIST NEXT 3

4) 显示数量少于5的货号、品名与生产单位; LIST 货号,品名,生产单位 FOR 数量<5

5) 显示进口商品或95年开单的商品信息; LIST FOR 进口=.T. OR YEAR(开单日期)=1995

6) 显示上海商品信息; LIST FOR \上海\生产单位

7) 显示单价大于4000的进口商品信息或单价大于5000的国产商品信息;LIST FOR 单价>4000 AND 进口=.T. OR 单价>5000 AND 进口=.F.

7

8) 列出1995年开单的商品的货号、品名、单价与开单日期,其中单价按9折显示 LIST 货号,品名,单价*0.9,开单日期 FOR YEAR(开单日期)=1995

9) 列出单价小于2000以及单价大于5000的进口商品信息; LIST FOR 单价<2000 AND 进口=.T. OR 单价>5000 AND 进口=.T.

10) 显示从第3个记录开始的所有国产商品信息; GO 3

LIST REST FOR 进口=.T.

11) 列出货号的后3位为“120”的全部商品信息; LIST FOR RIGHT(货号,3)=\

12) 列出货号第1个字母为“L”或第2个字母为“V”的全部商品信息; LIST FOR LEFT(货号,1)=\货号,2,1)=\

13) 列出公司生产的单价大于3000的所有商品信息。

8

LIST FOR \公司\生产单位 AND 单价>3000

四、思考

1. 什么是浏览窗口的一窗两区显示?

答:浏览窗口左下角有一黑色小方块,称为窗口分割器。将分割器42页 2. 什么是通用型字段?应该如何修改它的值? 3. 字段变量和内存变量各有什么特点?

字段变量:表由若干记录构成,每个记录都包含若干个数量相同的字段,同一字段在不同记录中分别对应不同的字段值,因此,字段也是变量。与其他变量不同的是,字段变量是定义在表中的变量,随表的存取而存取,因而是永久性变量。字段名就是变量名;变量的数据类型为Visual FoxPro中任意数据类型,字段值就是变量值。

内存变量:内存变量是在内存中定义的、一种单个数据元素的临时性变量。

4. 日期运算中要注意些什么?

书写格式,书写顺序

实验二 表的维护命令

一、目的和要求

1. 掌握记录指针定位命令、表的显示与复制。 2. 掌握记录的追加、删除、修改和恢复。 3. 掌握建立与修改表结构的命令。

二、实验原理

表中的数据常常需要维护,即进行显示、插入、删除和替换等。

2.1 复制命令

COPY FILE <文件名1> TO <文件名2>

COPY TO <文件名> [<范围>][FOR <条件>][WHILE <条件>] [FIELDS <字段名表>| FIELDS LIKE <通配字段名> | FIELDS EXCEPT <通配字段名>] [TYPE] [SDF|XLS|DELIMITED [WITH <定界符>|WITH BLANK|WITH TAB]]]

COPY STRUCTURE TO <文件名> [FIELDS <字段名表>]

2.1 插入和追加命令

INSERT [BLANK] [BEFORE]

INSERT INTO 表名[(字段名1 [,字段名2, ...])] VALUES(表达式1 [,表达式, ...]) APPEND [BLANK]

9

REPLACE <字段名1> WITH <表达式1> [ADDITIVE] [,<字段名2> WITH <表达式2> [ADDITIVE]] ...[<范围>][FOR <条件>][WHILE <条件>]

2.3 建立与修改表结构命令 CREATE TABLE <表名> (<字段名1> <字段类型>[(<字段宽度> [,<小数位数>])][,<字段名2>...])

ALTER TABLE <表名> ADD | ALTER [COLUMN] <字段名> <字段类型> [(<字段宽度> [, <小数位数>])]

ALTER TABLE <表名> DROP [COLUMN] <字段名1>|RENAME COLUMN <字段名2> TO <字段名3>

三、实验内容及步骤

1. 使用copy命令复制sb表为a1,复制sb表的部分字段为a2。 命令为:use sb

copy to a1

copy to a2 fields 名称,编号 for left(部门,1)=”2” 记录如下:

生成的表:

2. 将上题a1所有记录的名称和价格字段追加到sb表的末尾。 命令为:append from a1 fields 名称,价格 生成表如下:

10

insert into T2 values(?ZH971023?,?500130?,20) insert into T2 values(?ZH971023?,?300124?,15) insert into T2 values(?MY971115?,?200205?,200)

四、思考问题

1. VFP中LOCATE、SEEK和SELECT三个命令有什么关系?

seek和locate都是查询语句,与SQL中的SELECT类似,但它们是用来在表中定位记录,SQL中的SELECT用于实现关系的选择操作。

2. 数据库表和自由表有什么不同?

数据库表可以使用长表名,在表中可以使用长字段名; 可以为数据库表中的字段指定标题和添加注释; 可以为数据库表中的字段指定默认值和输入掩码; 数据库表中的字段有默认的控件类;

可以为数据库表规定字段级规则和记录级规则; 数据库表支持主关键字、参照完整性和表之间的联系;

数据库表支持INSERT、UPDATE和DELETE事件的触发器

3. 什么是参照完整性(RI)?

参照完整性 (RI) 这是指控制相关的表 (主/外键) 之间的数据完整性规则。除了使用引擎级别强制实施的主键中,可以创建存储的过程的更新、 删除,或插入行时执行某些操作。

26

实验四 程序设计初步

一、目的和要求

1. 掌握顺序结构、分支结构、循环结构。 2. 掌握子程序、过程、函数的区别和具体应用。

二、实验原理

VFP中包括三种基本控制结构:顺序结构、分支结构与循环结构。常见的分支和循环结构如下所示。

分支语句格式:

IF <逻辑表达式>

[ELSE

多分支语句格式:

<语句序列1> <语句序列2>] ENDIF

DO CASE

CASE <逻辑表达式1> <语句序列1> CSAE <逻辑表达式2> <语句序列2> ?

CASE <逻辑表达式n> <语句序列n> [OTHERWISE

<语句序列n+1>] ENDCASE

WHILE循环语句格式: DO WHILE <逻辑表达式> <语句序列>

ENDDO

FOR循环语句格式:

FOR <内存变量>=<数值表达式1> TO <数值表达式2> [STEP <数值表达式3>] <语句序列> ENDFOR

SCAN循环语句格式:

SCAN [<范围>] [FOR< 逻辑表达式1>] [WHILE< 逻辑表达式2>] <语句序列>

ENDSCAN

应用程序一般包含多个模块,模块是可以命名的一个程序段,可以指主程序、子程序和

27

自定义函数。各种调用形式如下所示。

类型 格式 调用命令 DO <程序名1> [WITH <参数表>] [IN <程序名2>] 自定义函数主要在表达式中调用 [ PARAMETERS <参数表>] <命令序列> 子程序 [RETURN] PROCEDURE <过程名> 过程 [PARAMETERS <参数表>] <命令序列> [RETURN] [FUNCTION <函数名>] 自定义函数 [PARAMETERS <参数表>] <语句序列> [RETURN <表达式>]

三、实验内容及步骤

1. 编一个程序,能根据记录号修改某设备的价格和部门。 命令:MODIFY COMMAND E4-1 程序: *e4-1.prg

clear use sb

@10,5say\修改设备价格\?

input\请输入记录号:\display 价格 record jlh

input\请输入第\个记录价格:\to jp

replace 价格 with jp display 价格 use

28

2. 编一个程序,能打开任意表浏览。 BROWSETABLE.PRG

@5,10 SAY”请输入表名:”GET BM DEFAULT SPACE(10) READ

BM=ALLTRIM(BM)

IF FILE(“&BM..DBF”) USE &BM BROWSE ELSE

WAIT”该文件不存在”WINDOW ENDIF

3. 编一个计算s=1+2+3+?+100的程序。

s=0

for i=1 to 100 s=s+i next ?\

29

4. 设计一个计算圆面积的子程序,并在主程序中带参数调用它。

*e4-13.prg

ymj=0

input\请输入半径:\do js with bj,ymj ?\return 子程序: *js.prg parameters r,s s=pi()*r*r return

5. 将上题改为过程调用。 *e4-5.prg

Set decimals to 2 Ymj=0

Input”请输入半径为:”to bj Do js with bj,ymj ?”ymj=”,ymj Return

Produce js Parameter r,s S=pi()*r*r return

6. 完成习题4练习6(使用SCAN命令)

30

入“?尚未完成”进行提示

6)设置菜单程序的初始化代码:“显示”菜单→“常规选项”命令→“常规选项”对话框中选定“设置”复选框→在弹出的“设置”编辑窗口键入如下代码: CLEAR ALL CLEAR

KEYBOARD ?{Ctrl+F4}? && 关闭命令窗口 MODIFY WINDOW SCREEN TITLE?设备管理系统?

USE SB

7)定义“退出”菜单项功能:在菜单栏页中选定“退出”菜单项的“创建”或“编辑”按钮,并在随后出现的过程编辑窗口中输入如下代码: USE

MODIFY WINDOW SCREEN

SET SYSMENU TO DEFAULT ACTIVATE WINDOW COMMAND

8)保存菜单定义:“文件”菜单→“保存”命令→生成SB.MNX和SB.MNT文件;

9)生成菜单程序:“菜单”菜单→“生成“命令→选定“生成菜单”对话框的“生成”按钮→生成菜单程序SB.MPR;

10)运行菜单程序:执行命令DO SB.MPR。

36

2. 建立一个具有撤消和剪贴板功能的快捷菜单,供浏览SB表时使用。 1)打开“快捷菜单设计器”窗口:“文件”菜单→“新建”命令→在“新建”对话框选定“菜单选项”按钮→“新建文件”按钮→“快捷菜单”按钮→“快捷菜单设计器”窗口;

2)插入系统菜单项:在“快捷菜单设计器窗口”中选定“插入栏”按钮→在“插入系统菜单栏”对话框中选定“粘贴”选项,并选定“插入”按钮→类似地插入“复制”“剪切”“撤销”选项→“关闭”按钮→返回“快捷菜单设计器”窗口;

3)生成菜单程序:“菜单”菜单→“生成”命令→保存菜单文件E5-3.MNX和菜单备注文件E5-3.MNT→在“生成菜单”对话框中选定“生成”按钮→生成菜单程序E5-3.MPR; 4)编写如下调用程序 *E5-3.PRG CLEAR ALL

PUSH KEY CLEAR

ON KEY LABEL RIGHTMOUSE DO E5-3.MPR USE SB BROWSE USE

PUSH KEY CLEAR

37

5) 运行调用程序及快捷菜单程序:在命令窗口键入DO E5-3,屏幕即会出现一个设备浏览

窗口。选定任何数据后,右击会弹出快捷菜单,进行相应的操作。

3.2 表单设计

1. 创建一个用于按照部门维护设备的涉及BMDM和SB两张表的表单。

(1)打开“表单向导”对话框:“工具”菜单→“向导”子菜单→“表单”命令→在“向导选取”对话框中选定“一对多表单向导”选项→“一对多表单向导”对话框;

(2)从父表中选定字段:单击“一对多表单向导”对话框中“数据库和表”区域的对话按钮→在“打开”对话框中选定BMDM表→将“可用字段”列表框的所有字段移到“选定字段”列表框中,并将名称字段移到代码字段之上→“下一步”按钮;

(3)从子表中选定字段:在“数据库和表”组合框下的列表框中选定SB表→将“可用字段”列表框中除部门字段外的所有字段移到“选定字段”列表框中→“下一步”按钮;

38

(4)关联表:在关联设置对话框中选择两表中的关联字段(此处采取默认设置)→“下一步”按钮;

(5)选择表单样式:在“选择表单样式”窗口点击“凹陷式”样式和“文本按钮”类型→“下一步”按钮;

39

(6)排序记录:省略该步骤,直接选定“下一步”按钮;

(7)设置“完成”对话框:在“完成”对话框的“请键入标题”文本框中输入“部门设备表”→“完成”按钮→在“另存为”对话框中输入表单文件名BMSB.SCX→“保存”按钮→生成BMSB.SCX和BMSB.SCT备注文件;

(8)执行表单:“程序”菜单→“运行”命令→“表单”选项→列表选定BMSB.SCX→“运行”按钮

40

本文来源:https://www.bwwdw.com/article/wxh.html

Top